设置音频类别、ios时闪烁红色状态栏

设置音频类别、ios时闪烁红色状态栏,ios,audio,avaudiosession,Ios,Audio,Avaudiosession,我正在创建一个使用google webrtc API的应用程序。当我将两个设备连接到一个会话中时。我启用音频通道,以便他们可以通过设备进行通话。我知道在webrtc库中,他们已经将sessionMode设置为VoiceChat,但我必须将类别设置为play并记录自己,因为当有人在后台调用应用程序时,我想播放铃声 因此,当我将audioSessionCatogory设置为Play和Record时,在建立连接之前,应用程序将冻结,状态栏将闪烁红色几次 我试着不自己设置类别,一切正常,但我真的需要这样

我正在创建一个使用google webrtc API的应用程序。当我将两个设备连接到一个会话中时。我启用音频通道,以便他们可以通过设备进行通话。我知道在webrtc库中,他们已经将sessionMode设置为VoiceChat,但我必须将类别设置为play并记录自己,因为当有人在后台调用应用程序时,我想播放铃声

因此,当我将audioSessionCatogory设置为Play和Record时,在建立连接之前,应用程序将冻结,状态栏将闪烁红色几次

我试着不自己设置类别,一切正常,但我真的需要这样做,以实现我的应用程序目标

有人知道问题出在哪里吗?我不知道是我在设置类别的同时webrtc也在设置类别,还是我设置类别的代码不正确

这就是我用来改变分类的代码

UInt32 value = kAudioSessionCategory_PlayAndRecord;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(value), &value);

value = YES;

AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryMixWithOthers, sizeof(value), &value);
AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryDefaultToSpeaker, sizeof(value), &value);

value = kAudioSessionMode_VoiceChat;

AudioSessionSetProperty(kAudioSessionProperty_Mode, sizeof(value), &value);

AudioSessionSetActive(YES);
我尝试使用AVAudioSession类intead,但这并不是我想要的方式,所以我使用这个。这可能是线程问题吗?此代码是否需要在指定线程中运行

此外,当我切换类别时,我会遇到此错误:

ERROR:     [0x8731000] >aurioc> 1455: AURemoteIO@0x17dbb020: 
IOThread exiting with error 0x10004006
谢谢你的帮助