Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AVAudioSession与WKWebview的混合_Ios_Objective C_Wkwebview_Voip_Avaudiosession - Fatal编程技术网

AVAudioSession与WKWebview的混合

AVAudioSession与WKWebview的混合,ios,objective-c,wkwebview,voip,avaudiosession,Ios,Objective C,Wkwebview,Voip,Avaudiosession,我正在开发一个VoIP应用程序。为此,我将AVAudioSession的类别设置为AVAudioSessionCategoryPlayAndRecord 到目前为止,所有的应用程序功能都运行良好 然后我们有了一个新的要求,在应用程序中,当语音通话进行时,用户可以播放嵌入WKWebView的一个视频 现在,当用户从WKWebView播放视频时,视频播放成功,视频的音量也达到了预期。但当用户停止/暂停视频时,语音通话就会断开 因此,我知道WKWebView的运行过程与应用程序不同,因此为了使我的应用

我正在开发一个VoIP应用程序。为此,我将AVAudioSession的类别设置为
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