音频会话服务:kAudioSessionProperty_OverrideAudioRoute,具有不同的输入和输出路径

Mar*_*tha 7 iphone objective-c core-audio audiotoolbox ios

我正在搞乱音频会话服务.我正在尝试将音频路由设置AudioSessionSetProperty: kAudioSessionProperty_OverrideAudioRoutekAudioSessionOverrideAudioRoute_Speaker.

问题是它改变了输入和输出的路径.我想要的是从耳机的麦克风输入设置,并通过扬声器输出.

有任何想法吗?

泰!

小智 3

您可以在 iOS 5 中使用以下属性执行此操作:

kAudioSessionProperty_InputSource 
kAudioSessionProperty_OutputDestination 
Run Code Online (Sandbox Code Playgroud)

对于可能的值(设备上可用的源\目标),请使用 AudioSessionGetProperty 和以下属性:

kAudioSessionProperty_InputSources
kAudioSessionProperty_OutputDestinations
Run Code Online (Sandbox Code Playgroud)

对于 iOS 3.1+,我假设您正在使用 PlayAndRecord 音频会话类别 - 您可能想尝试将 kAudioSessionProperty_OverrideCategoryDe​​faultToSpeaker 设置为 true。例如,

UInt32 defaultToSpeaker = 1;
status = AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryDefaultToSpeaker,                        
                                sizeof (defaultToSpeaker),                                   
                                &defaultToSpeaker                               
                                );
Run Code Online (Sandbox Code Playgroud)

可能不完全是您正在寻找的东西,但我认为您在 < iOS 5 中无法更接近。

  • 不幸的是,kAudioSessionProperty_InputSources 适用于 **USB 音频配件**。所以它不适用于我的耳机。 (3认同)