微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 webRTC 支持的视频通话时,iOS 应用程序中的单声道音频输出

如何解决使用 webRTC 支持的视频通话时,iOS 应用程序中的单声道音频输出

我正在编写的应用包含两部分:

  1. 播放立体声 MP3 文件的音频播放器
  2. 使用 webRTC 的视频会议

每个部分都可以完美地独立工作,但是当我将它们放在一起尝试时,会发生以下两种情况之一:

  1. 视频会议音频淡出,我们只听到音频文件(立体声)
  2. 我们从两者获得音频输出,但音频文件以单声道播放,从双耳平等地输出

我的挖掘让我走了几条路:

https://developer.apple.com/forums/thread/90503

&

https://github.com/twilio/twilio-video-ios/issues/77

这表明问题可能与音频会话类别、模式或选项有关。 然而,我已经尝试了很多组合,并且正在努力让任何事情按预期工作。

有没有人对音频选项有更好的理解以指明正确的方向?

我最近的组合

class BBAudioClass {

    static private var audioCategory : AVAudioSession.Category = AVAudioSession.Category.playAndRecord

    static private var audioCategoryOptions : AVAudioSession.CategoryOptions = [
        AVAudioSession.CategoryOptions.mixWithOthers,AVAudioSession.CategoryOptions.allowBluetooth,AVAudioSession.CategoryOptions.allowAirPlay,AVAudioSession.CategoryOptions.allowBluetoothA2DP
    ]

    static private var audioMode = AVAudioSession.Mode.default

    static func setCategory() -> Void {

        do {
            let audioSession: AVAudioSession = AVAudioSession.sharedInstance()
            try audioSession.setCategory(
                BBAudioClass.audioCategory,mode: BBAudioClass.audioMode,options: BBAudioClass.audioCategoryOptions
            )
        } catch {

        };
    }
}

更新

我设法通过以下方式让一切正常工作:

  1. 开始音频会话
  2. 连接到视频会议(此时所有音频都是单声道)
  3. 强制所有输出到扬声器
  4. 强制输出回耳机

显然这是一件疯狂的事情,但确实证明它应该有效。 但是,如果有人知道这为什么有效,那就太好了,这样我就可以在第一次真正使事情正常工作而无需经历所有这些笨拙的步骤

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。