我正在尝试使用Apple的示例应用程序SpeakHere,并希望通过扬声器扬声器而不是耳机扬声器进行收听。
我可以使用以下代码打开扬声器扬声器:
UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute,sizeof (audioRouteOverride),&audioRouteOverride);
但之后应用程序将不再记录。它冻结了。这段代码没有任何好处:
UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_None;
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute,sizeof (audioRouteOverride),&audioRouteOverride);
男孩,看起来好像你可以用顶级代码切换扬声器,你应该能够用其他代码切换它。秘密是什么?
答案 0 :(得分:0)
您是否在音频队列运行时尝试执行此操作?或者您是否在更改音频会话之前停止音频队列并重新启动它?
您是否查看了所有音频会话和音频队列调用的错误返回值,以查看是否报告了错误?如果是这样,错误值是什么?