接入声网
This commit is contained in:
59
yinmeng-ios/Modules/Room/Tool/YinRoomAgoraManager.swift
Normal file
59
yinmeng-ios/Modules/Room/Tool/YinRoomAgoraManager.swift
Normal file
@@ -0,0 +1,59 @@
|
||||
//
|
||||
// YinRoomAgoraManager.swift
|
||||
// yinmeng-ios
|
||||
//
|
||||
// Created by duoban on 2024/3/22.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
class YinRoomAgoraManager: NSObject {
|
||||
|
||||
func initAgora(roomUid:String){
|
||||
manager.setClientRole(.audience)
|
||||
let i = manager.joinChannel(byToken: nil, channelId: roomUid, info: nil, uid: UInt(AuthManager.userUid)) { c, uid, e in
|
||||
self.manager.muteAllRemoteAudioStreams(false)
|
||||
self.muteLocalAudio(mute: false)
|
||||
}
|
||||
print(i)
|
||||
|
||||
}
|
||||
func muteLocalAudio(mute:Bool){
|
||||
manager.muteLocalAudioStream(mute)
|
||||
}
|
||||
func setBroadcast(isChange:Bool){
|
||||
manager.setClientRole(isChange ? .broadcaster : .audience)
|
||||
}
|
||||
func exitRoom(){
|
||||
manager.leaveChannel { stats in
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
func destroySharedIntance(){
|
||||
AgoraRtcEngineKit.destroy()
|
||||
}
|
||||
private lazy var manager:AgoraRtcEngineKit = {
|
||||
let _manager = AgoraRtcEngineKit.sharedEngine(withAppId: AppKeys.agoraKey, delegate: self)
|
||||
_manager.setChannelProfile(.liveBroadcasting)
|
||||
_manager.startLastmileProbeTest(nil)
|
||||
_manager.setParameters("{\"che.audio.keep.audiosession\":true}")
|
||||
_manager.enableAudio()
|
||||
_manager.disableVideo()
|
||||
_manager.enableAudioVolumeIndication(900, smooth: 3, reportVad: true)
|
||||
_manager.setAudioProfile(.musicStandard)
|
||||
_manager.setAudioScenario(.gameStreaming)
|
||||
#if DEBUG
|
||||
_manager.setLogFilter(0x000f)
|
||||
#else
|
||||
_manager.setLogFilter(0)
|
||||
#endif
|
||||
return _manager
|
||||
}()
|
||||
}
|
||||
extension YinRoomAgoraManager:AgoraRtcEngineDelegate{
|
||||
func rtcEngine(_ engine: AgoraRtcEngineKit, reportAudioVolumeIndicationOfSpeakers speakers: [AgoraRtcAudioVolumeInfo], totalVolume: Int) {
|
||||
NotificationCenter.default.post(name: NSNotification.Name(rawValue: "kReceiveUserVoiceVolume") , object: nil, userInfo: ["userVolumes":speakers,"totalVolume":totalVolume,"type":"agora"])
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user