我正在试用苹果的示例应用程序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); 天哪,如果你能用顶级代码打开扬声器,你应该也能用其他代码把它关掉。秘诀是什么?
发布于 2010-08-28 14:22:34
您是否正在尝试在音频队列运行时执行此操作?或者您之前停止了音频队列,并在更改音频会话后重新启动了它?
您是否查看了所有音频会话和音频队列调用的错误返回值,以查看是否报告了错误?如果是这样,误差值是多少?
https://stackoverflow.com/questions/3589256
复制相似问题