名为SpeakHere的Apple演示iPhone应用程序无法响应kAudioSessionOverrideAudioRoute_None

时间:2010-08-28 02:52:44

标签: iphone audio speakerphone

我正在尝试使用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); 

男孩,看起来好像你可以用顶级代码切换扬声器,你应该能够用其他代码切换它。秘密是什么?

1 个答案:

答案 0 :(得分:0)

您是否在音频队列运行时尝试执行此操作?或者您是否在更改音频会话之前停止音频队列并重新启动它?

您是否查看了所有音频会话和音频队列调用的错误返回值,以查看是否报告了错误?如果是这样,错误值是什么?