我遇到了GKVoiceChat的问题。整个音频设置无错误地执行,我可以使用GKMatch对象成功创建GKVoiceChat对象。一旦我在语音聊天对象上使用“开始”方法开始语音聊天,控制台就会打印
AURemoteIO::Initialize failed: 'init' (enable 3, outf< 1 ch, 16000 Hz, 'lpcm' (0x0000002C) 16-bit little-endian signed integer, deinterleaved> inf< 1 ch, 16000 Hz, 'lpcm' (0x0000000C) 16-bit little-endian signed integer>)
Google没有透露有关此错误的任何有用信息。有没有人遇到过这个,知道这里出了什么问题?在iPhone 4和iPad 2上表现相同。
编辑:附加发现:我还设置AmbientSound属性以尊重其他音频(音乐,声音)的静音开关,这似乎是问题的原因。初始化音频服务时,我也在运行此代码:
SInt32 ambient = kAudioSessionCategory_SoloAmbientSound;
if (AudioSessionSetProperty (kAudioSessionProperty_AudioCategory, sizeof (ambient), &ambient)) {
NSLog(@"Error setting ambient property");
}
当我发表评论时,语音聊天运行得很好。但是,静音开关不再受到尊重。
我怎么能同时拥有两者?
谢谢,habitoti
答案 0 :(得分:0)
从文档开始 - iOS有6个音频会话类别,其中3个影响Slient开关的行为:
AVAudioSessionCategoryAmbient或等效的kAudioSessionCategory_AmbientSound-使用此类别,您的音频将被Ring / Silent开关静音,并在屏幕锁定时静音。当我们想要具有内置应用音频的应用音频时使用
AVAudioSessionCategorySoloAmbient或等效的kAudioSessionCategory_SoloAmbientSound-当用户将“响铃/静音”开关切换到“静音”位置并且屏幕锁定时,要将其音频静音的应用程序使用此类别。这是默认类别
AVAudioSessionCategoryPlayback或等效的kAudioSessionCategory_MediaPlayback - 将此类别用于音频播放最重要的应用程序。即使屏幕已锁定且铃声/静音开关设置为静音,您的音频也会播放。