AVAudioSession与WKWebview的混合
我正在开发一个VoIP应用程序。为此,我将AVAudioSession的类别设置为AVAudioSession与WKWebview的混合,ios,objective-c,wkwebview,voip,avaudiosession,Ios,Objective C,Wkwebview,Voip,Avaudiosession,我正在开发一个VoIP应用程序。为此,我将AVAudioSession的类别设置为AVAudioSessionCategoryPlayAndRecord 到目前为止,所有的应用程序功能都运行良好 然后我们有了一个新的要求,在应用程序中,当语音通话进行时,用户可以播放嵌入WKWebView的一个视频 现在,当用户从WKWebView播放视频时,视频播放成功,视频的音量也达到了预期。但当用户停止/暂停视频时,语音通话就会断开 因此,我知道WKWebView的运行过程与应用程序不同,因此为了使我的应用
AVAudioSessionCategoryPlayAndRecord
到目前为止,所有的应用程序功能都运行良好
然后我们有了一个新的要求,在应用程序中,当语音通话进行时,用户可以播放嵌入WKWebView的一个视频
现在,当用户从WKWebView播放视频时,视频播放成功,视频的音量也达到了预期。但当用户停止/暂停视频时,语音通话就会断开
因此,我知道WKWebView的运行过程与应用程序不同,因此为了使我的应用程序的音频与WKWebView混合,我必须将AVAudioSession设置为与其他应用程序混合
我已经用下面的代码完成了
AVAudioSession *session = [AVAudioSession sharedInstance];
NSError *errorInSettingCategory;
BOOL success = [session setCategory:AVAudioSessionCategoryPlayAndRecord withOptions: AVAudioSessionCategoryOptionDefaultToSpeaker | AVAudioSessionCategoryOptionMixWithOthers | AVAudioSessionCategoryOptionAllowBluetooth error:&errorInSettingCategory];
现在,从WKWebView播放视频后,我可以继续语音通话
但是这种方法引入了新的bug
由于现在AVAudioSession是可混音的,WKWebView的视频音量很低,应用程序的音频(语音通话音频)占主导地位
我尝试过不同的setcategory选项,但没有成功
我想让应用程序的音频音量和WKWebView的视频音量保持在同一水平
谢谢您的帮助。尝试将您的音频会话的
duckOthers
属性设置为false
: