我正在编写应用程序,当应用程序通过麦克风录制时,我不需要中断用户正在播放的任何音乐。
但是,如果我将kAudioSessionProperty_OverrideAudioRoute与kAudioSessionOverrideAudioRoute_Speaker一起用于我的音频会话属性,即使插入了耳机,音频也会重新路由到外部扬声器。如果我使用kAudioSessionProperty_OverrideCategoryDefaultToSpeaker,即使我',也不允许播放背景音乐m使用kAudioSessionProperty_OverrideCategoryMixWithOthers。
有什么想法吗?
答案 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 );
设置默认路径覆盖似乎可以避免与其他应用混合。所以只需设置允许与其他应用程序混合。