将音频输出重定向到手机扬声器和麦克风输入到耳机

use*_*412 15 iphone audio objective-c ios

是否可以将音频输出重定向到手机扬声器并仍然使用麦克风耳机输入?

如果我将音频路由重定向到手机扬声器而不是耳机,它也会重定向麦克风.这是有道理的,但我似乎只能重新定向麦克风输入?有任何想法吗?

这是我用来将音频重定向到扬声器的代码:

UInt32 doChangeDefaultRoute = true;        
propertySetError = AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryDefaultToSpeaker, sizeof(doChangeDefaultRoute), &doChangeDefaultRoute);
NSAssert(propertySetError == 0, @"Failed to set audio session property: OverrideCategoryDefaultToSpeaker");
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute,sizeof (audioRouteOverride),&audioRouteOverride);
Run Code Online (Sandbox Code Playgroud)

joc*_*ull 6

这是可能的,但它对你如何设置它是挑剔的.

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty(kAudioSessionProperty_OverrideAudioRoute, sizeof(audioRouteOverride), &audioRouteOverride);
Run Code Online (Sandbox Code Playgroud)

这是非常重要的使用AVAudioSessionCategoryPlayAndRecord或路线将无法进入扬声器.一旦为音频会话设置了覆盖路由,就可以使用AVAudioPlayer实例并将一些输出发送到扬声器.

希望对我这样的人有用.关于此的文档是分散的,但Skype应用证明它是可能的.坚持不懈,我的朋友们!:)

这里有一些Apple文档:http://developer.apple.com/library/ios/#documentation/AudioToolbox/Reference/AudioSessionServicesReference/Reference/reference.html

在页面上搜索 kAudioSessionProperty_OverrideAudioRoute


Ale*_*x L 4

恐怕这看起来不可能。

\n\n

来自音频会话编程指南- kAudioSessionProperty_OverrideAudioRoute

\n\n
\n

如果在将此属性\xe2\x80\x99s 值\n 设置为 kAudioSessionOverrideAudioRoute_Speaker 时插入耳机,则系统会更改\n 输入和输出的音频路由:输入来自\n 内置音频路由麦克风; 输出到内置扬声器。

\n
\n\n

这个问题可能重复

\n