2

在我的应用程序中,我需要在播放自己的声音时暂停并重新启动背景音乐。

iPod 的方法是使用:

[[MPMusicPlayerController iPodMusicPlayer] pause];

和 :

[[MPMusicPlayerController iPodMusicPlayer] play];

对于非 iPod 应用程序,这没有影响。

第二次尝试是启用闪避:

    UInt32 property = sender.on;
    AudioSessionSetProperty(kAudioSessionProperty_OtherMixableAudioShouldDuck,sizeof(property),&property);
    AudioSessionSetActive(property);

也适用于 iPod 音乐播放器,而不是 Spotify。

设置kAudioSessionCategory_SoloAmbientSound确实会停止所有音乐,但不会重新启动它。

4

2 回答 2

3

控制它的方法是使用AVAudioSession'ssetActive方法。

当您想播放声音时,请将会话设置为活动状态:

[[AVAudioSession sharedInstance] setActive:YES error:nil];

当您停止播放时,将您的会话设置为非活动状态,但同时带有通知其他人的标志。此标志应该会导致其他应用程序重新启动(应该适用于 iPod 和其他应用程序)。对于带有 AVAudioSession 的 iOS6+,您可以这样做:

[[AVAudioSession sharedInstance] setActive:NO withOptions:AVAudioSessionSetActiveOptionNotifyOthersonDeactivation error:nil];

iOS 6 之前:

 [[AVAudioSession sharedInstance] setActive:NO withFlags:AVAudioSessionSetActiveFlags_NotifyOthersOnDeactivation error:nil];
于 2013-05-31T07:50:05.400 回答
0

你也不需要。iOS 只允许一个应用程序一次播放音频,并且会自动暂停音乐播放器,以便您可以播放音乐,因为您的应用程序具有音乐播放优先级。玩你的,让 iOS 来处理。

于 2013-01-05T15:38:59.310 回答