录制时播放音乐,无需重新路由

时间:2012-11-28 03:13:13

标签: ios audio core-audio audiosession

我正在编写应用程序,当应用程序通过麦克风录制时,我不需要中断用户正在播放的任何音乐。

但是,如果我将kAudioSessionProperty_OverrideAudioRoute与kAudioSessionOverrideAudioRoute_Speaker一起用于我的音频会话属性,即使插入了耳机,音频也会重新路由到外部扬声器。如果我使用kAudioSessionProperty_OverrideCategoryDe​​faultToSpeaker,即使我',也不允许播放背景音乐m使用kAudioSessionProperty_OverrideCategoryMixWithOthers。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

我找到了答案。

不要这样做:

AudioSessionSetProperty( kAudioSessionProperty_OverrideCategoryMixWithOthers, sizeof( trueValue ), &trueValue );
AudioSessionSetProperty( kAudioSessionProperty_OverrideCategoryDefaultToSpeaker, sizeof(trueValue), &trueValue);

而是首先设置默认扬声器属性:

AudioSessionSetProperty( kAudioSessionProperty_OverrideCategoryDefaultToSpeaker, sizeof(trueValue), &trueValue);
AudioSessionSetProperty( kAudioSessionProperty_OverrideCategoryMixWithOthers, sizeof( trueValue ), &trueValue );

设置默认路径覆盖似乎可以避免与其他应用混合。所以只需设置允许与其他应用程序混合。