ios - 正在进行 WebRTC 音频通话时,AVAudioPlayer 以非常低的音量播放声音

标签 ios swift webrtc avaudioplayer avaudiosession

我正在尝试使用 AVAudioPlayer 播放声音片段,同时使用适用于 iOS 的 GoogleWebRTC Obj-C 库激活 PeerConnection

当我播放声音时,我可以通过扬声器听到它,但与 WebRTC 音频输出相比,它以极低(几乎听不见)的音量播放。

我将 AVAudioSession 设置为 active = true,如下所示; AVAudioSession.Category = .playAndRecordAVAudioSession.CategoryOptions = [.defaultToSpeaker, .allowBluetooth, .mixWithOthers]AVAudioSession.Mode = .voiceChat

当没有主动配置的 WebRTC 音频连接时,我可以轻松播放和听到声音。

有没有一种方法可以让 AVAudioPlayer 播放声音,而无需通过 WebRTC 降低音量?

do {
        try setActiveAudio()

        let player = try AVAudioPlayer(data: asset.data, fileTypeHint: AVFileType.mp3.rawValue)

        activePlayers.append(player)

        player.delegate = self
        player.prepareToPlay()
        player.play()
} catch let error {
        print(error.localizedDescription)
}

感谢您的帮助。

最佳答案

在播放音频之前,将模式更改为默认模式,也会失去对 aec、agc 的支持,

[[AVAudioSession sharedInstance] setMode:AVAudioSessionModeDefault error:&error];

播放结束后,将模式重置为语音聊天,

[[AVAudioSession sharedInstance] AVAudioSessionModeVoiceChat error:&error];

关于ios - 正在进行 WebRTC 音频通话时,AVAudioPlayer 以非常低的音量播放声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55291451/

相关文章:

ios - 如何将数据传递到嵌入在TableViewCell中的UICollectionView(xCode-iOS-Swift 3)

ios - 场景过渡淡化但不切换场景

ios - swift3 中的选择器

iphone - 是否有用于创建填字游戏的 iOS SDK?

swift - 如何在点击外部时关闭我的幻灯片菜单?

ios - 长链接不可解析 - iOS 上的 Firebase 动态链接

swift - 如何给UITableViewCell添加左右边距

android - WebRTC onMessage() 不会在 Android 上触发

webrtc - 在浏览器和Electron平台中使用WebRTC API共享P2P文件

webrtc - ast_sockaddr_resolve : getaddrinfo(): Name or service not known