小编Ori*_*nus的帖子

扬声器问题 - WebRTC 和 iOS

我正在尝试使用 google 的 webRTC pod 制作一个带有 webRTC 的视频聊天应用程序。我面临的问题是在尝试使用扬声器输出声音时。如果访问扬声器成功,所有扬声器开始发出声音,包括顶部扬声器和外放扬声器;并且有很多回声和噪音。但有时,它根本无法访问扬声器,我会看到以下错误:

Error Domain=NSOSStatusErrorDomain Code=-50 
Run Code Online (Sandbox Code Playgroud)

我主要使用此存储库中的 webRTC 部分: https://github.com/lg-tawsenior/WebRTC-iOS/blob/master/WebRTC-Demo-App/Sources/Services/WebRTCClient.swift

尝试通过扬声器输出的函数是:

func speakerOn() {
      self.audioQueue.async { [weak self] in
          guard let self = self else {
              return
          }
        
          self.rtcAudioSession.lockForConfiguration()
          do {
            
            try self.rtcAudioSession.setCategory(AVAudioSession.Category.playAndRecord.rawValue)
            try self.rtcAudioSession.overrideOutputAudioPort(AVAudioSession.PortOverride.speaker)
            try self.rtcAudioSession.setActive(true)
            
          } catch let error {
            
            debugPrint("Couldn't force audio to speaker: \(error)")
          }
          self.rtcAudioSession.unlockForConfiguration()
      }
  }

Run Code Online (Sandbox Code Playgroud)

我尝试将 rtcAudioSession 设置为非活动状态,但这是不可能的,因为有 I/O 正在进行。我尝试暂停 webRTC 收发器中的所有远程轨道,但没有成功。

预先非常感谢您的帮助。

avaudiosession webrtc swift

4
推荐指数
1
解决办法
3188
查看次数

标签 统计

avaudiosession ×1

swift ×1

webrtc ×1