这里的问题是,我想使用默认的 iphone 扬声器播放一首歌曲,同时使用耳机播放另一首歌曲,这可能吗?
在我的情况下,我使用了两个 AVAudioSession。
我尝试使用它,但此属性适用于所有 AVaudioSession :
[mySession overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:nil];
谢谢
这里的问题是,我想使用默认的 iphone 扬声器播放一首歌曲,同时使用耳机播放另一首歌曲,这可能吗?
在我的情况下,我使用了两个 AVAudioSession。
我尝试使用它,但此属性适用于所有 AVaudioSession :
[mySession overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:nil];
谢谢
不能同时向扬声器和耳机输出不同的音频流。
AVAudioSessionCategoryMultiRoute
从 iOS 6 开始,可以使用类别将不同的音频流输出到单独的输出。这是使用:
// Retrieve session instance
AVAudioSession *session = [ AVAudioSession sharedInstance ];
// Register for Route Change notifications
[[NSNotificationCenter defaultCenter] addObserver: myObject
selector: @selector(handleRouteChange:)
name: AVAudioSessionRouteChangeNotification
object: session];
// Request the MultiRoute category
[ session setCategory:AVAudioSessionCategoryMultiRoute error:&errRet ];
// Set our session to be active
[ session setActive:YES error:&errRet ];
完整的详细信息可以在WWDC 2012 Session 505 视频中找到 AudioSession 和 MultiRoute Audio。请务必观看完整的视频,而不仅仅是阅读的 PDF,因为它包含功能的完整演示。
从会话中并不清楚如何将不同的音频路由到代码中的不同输出,因此找到解决方案可能需要一些试验和错误,或者在CoreAudio-API 邮件列表中提出问题。
这并不能解决您的问题,但您也可以在插入耳机时强制音频通过扬声器输出。请参阅UI Hacker - iOS: Force audio output to speaker while the听筒被插入。