2

这里的问题是,我想使用默认的 iphone 扬声器播放一首歌曲,同时使用耳机播放另一首歌曲,这可能吗?

在我的情况下,我使用了两个 AVAudioSession。

我尝试使用它,但此属性适用于所有 AVaudioSession :

 [mySession overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:nil];

谢谢

4

1 回答 1

3

不能同时向扬声器和耳机输出不同的音频流。

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听筒被插入。

于 2014-08-07T09:56:12.003 回答