我正在创建一个使用google webrtc API的应用。当我将两个设备连接到会话时。我启用音频通道,以便他们可以通过设备进行通话。我知道在webrtc库中,他们已经将sessionMode设置为VoiceChat,但是我必须将类别设置为playAndRecord,因为当有人在应用程序处于后台时调用时,我想播放一个ringTone声音。 / p>
因此,当我将audioSessionCatogory设置为PlayAndRecord时,应用程序将冻结并且状态栏将在建立连接之前闪烁红色一段时间。
我尝试不自行设置类别,一切正常,但我真的需要这样做才能实现我的应用目标。
有谁知道问题可能是什么?我不知道在webrtc设置时我是否设置了类别的问题,或者我设置catergory的代码不正确。
所以这是我用来改变catergory的代码。
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
感谢您的帮助