我正在尝试将媒体播放与 iOS 9 和 8 的 VoIP 功能(通过 Twilio)结合起来。
当音频流在后台播放时,我连接或断开语音会议会话,这导致音量从值 X 到值 Y。可以听到这种跳跃,也可以通过
[AVAudioSession sharedInstance].outputVolume
值变化观察到。[[AVAudioSession sharedInstance] setMode:AVAudioSessionModeDefault error:&error]
[[AVAudioSession sharedInstance] setMode:AVAudioSessionModeVoiceChat error:&error]
感谢任何帮助。
设置播放和录制类别时,将
AVAudioSessionCategoryOptionDefaultToSpeaker
作为选项传递:
[[AVAudioSession sharedInstance] AVAudioSessionCategoryPlayAndRecord withOptions: AVAudioSessionCategoryOptionDefaultToSpeaker error:&error];
这会覆盖从扬声器切换到更安静的接收器的默认播放和录制行为。这样做的原因是播放和录音是为电话设计的,你会把电话放在耳边并且可能不希望你的听力被响亮的声音损坏。
来自 Twilio 的 Megan。
我不是最熟悉 iOS SDK,但您应该能够从
TCDevice
参数 incomingSoundEnabled
、outgoingSoundEnabled
和 disconnectSoundEnabled
控制连接音频,如 documented here。
否则,我建议查看 Twilio SDK 调用的 AVAudioSession 的
sharedInstance
属性,如本文中所示:
setCategory:error:
setActive:error:
overrideOutputAudioPort:error:
如果有帮助,请告诉我。
有解决办法吗?我也有同样的问题。 而且我发现我只能在模式为 AVAudioSessionModeDefault 时使用 MPVolumeView 来控制音量。但当模式为 AVAudioSessionModeVoiceChat 时,它仍然控制“默认音量”。