Files
yingmeng-ios-switf/yinmeng-ios/Modules/Room/Tool/YinRoomTRTCManager.swift

83 lines
3.1 KiB
Swift
Raw Normal View History

2024-03-22 11:54:23 +08:00
//
// YinRoomTRTCManager.swift
// yinmeng-ios
//
// Created by yinmeng on 2024/3/22.
2024-03-22 11:54:23 +08:00
//
import UIKit
class YinRoomTRTCManager: NSObject {
2024-03-22 15:46:25 +08:00
2024-03-23 18:21:29 +08:00
func initRTRC(){
2024-03-22 11:54:23 +08:00
let cloud = TRTCCloud.sharedInstance()
let params = TRTCAudioVolumeEvaluateParams()
params.interval = 900
cloud.enableAudioVolumeEvaluation(true, with: params)
TRTCCloud.setConsoleEnabled(false)
TRTCCloud.sharedInstance().addDelegate(self)
}
2024-03-22 15:46:25 +08:00
var roomData:RoomDataModel?
func setTRTC(){
if let roomId = self.roomData?.roomId,let uid = self.roomData?.uid{
let cloud = TRTCCloud.sharedInstance()
let curRoomId = (Int(roomId) ?? 0) > INT_MAX ? uid : roomId
let params = TRTCAudioVolumeEvaluateParams()
params.interval = 900
cloud.enableAudioVolumeEvaluation(true, with: params)
let yinParams = TRTCParams()
if AuthViewModel.authVM.appId.isEmpty{
2024-03-28 19:56:25 +08:00
yinParams.sdkAppId = UInt32("1400820672") ?? 0
2024-03-22 15:46:25 +08:00
}else{
yinParams.sdkAppId = UInt32(AuthViewModel.authVM.appId) ?? 0
}
2024-03-23 16:28:10 +08:00
yinParams.roomId = UInt32(curRoomId) ?? 0
2024-03-22 15:46:25 +08:00
let uid = "\(AuthManager.userUid)"
yinParams.userId = uid
let sign = self.roomData?.trtcSig ?? ""
yinParams.userSig = sign
yinParams.role = TRTCRoleType.audience
TRTCCloud.sharedInstance().enterRoom(yinParams, appScene: TRTCAppScene.LIVE)
TRTCCloud.sharedInstance().muteAllRemoteAudio(false)
TRTCCloud.sharedInstance().muteLocalAudio(false)
RoomVCViewModel.roomVM.isMute = false
}
}
func muteLocalAudio(mute:Bool){
TRTCCloud.sharedInstance().muteLocalAudio(mute)
}
func setBroadcast(isChange:Bool){
TRTCCloud.sharedInstance().switch(isChange ? .anchor : .audience)
if (isChange){
let text = "{\"api\":\"setAudioQualityEx\",\"params\":{\"sampleRate\":48000,\"channel\":2,\"bitrate\":192,\"encodeMode\":1,\"systemVolumeType\":1}}"
TRTCCloud.sharedInstance().callExperimentalAPI(text)
let aecText = "{\"api\":\"enableAudioAEC\",\"params\":{\"enable\":1,\"level\":100}}"
TRTCCloud.sharedInstance().callExperimentalAPI(aecText)
TRTCCloud.sharedInstance().startLocalAudio(.music)
}else{
TRTCCloud.sharedInstance().stopLocalAudio()
}
}
func exitRoom(){
TRTCCloud.sharedInstance().exitRoom()
TRTCCloud.sharedInstance().muteAllRemoteAudio(false)
TRTCCloud.sharedInstance().muteLocalAudio(false)
}
func destroySharedIntance(){
TRTCCloud.destroySharedIntance()
}
2024-03-22 11:54:23 +08:00
}
extension YinRoomTRTCManager:TRTCCloudDelegate{
2024-03-22 15:46:25 +08:00
func onUserVoiceVolume(_ userVolumes: [TRTCVolumeInfo], totalVolume: Int) {
NotificationCenter.default.post(name: NSNotification.Name(rawValue: "kReceiveUserVoiceVolume") , object: nil, userInfo: ["userVolumes":userVolumes,"totalVolume":totalVolume,"type":"trtc"])
}
2024-03-22 11:54:23 +08:00
}