我将'webRTC'添加到我的应用程序中 . 我在打开视频之前插上耳机,耳机里没有声音,声音从扬声器中传出 . 但是,我打开视频后插上耳机,声音来自耳机 . 我在网上搜索了很长时间 . 但没用 . 请帮助或尝试提供一些如何实现这一点的想法 . 这是我的代码:
[[AVAudioSession sharedInstance] overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:nil];
并且,当我尝试这样编码时,它不起作用:
BOOL success = [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord mode:AVAudioSessionModeVideoChat options:AVAudioSessionCategoryOptionDefaultToSpeaker error:&error];
1 回答
看起来你正在使用overrideSpeaker作为默认值 . 你只需要使用overrideOutputAudioPort . 使用我所面对的扬声器和辅助扬声器时,有一些关键点 .
[[AVAudioSession sharedInstance] overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:nil];
如果你想使用辅助扬声器或外部外围设备使用 .
[[AVAudioSession sharedInstance] overrideOutputAudioPort:AVAudioSessionPortOverrideNone error:nil];
当信令过程正在工作时(创建/接受提供和回答)默认扬声器路由应该在AVAudioSessionPortOverrideNone上 . 或者它将自动更改为AVAudioSessionPortOverrideNone .
您可以通过在应用程序内使用overrideOutputAudioPort方法来更改音频路由 .
希望它会对你有所帮助 .