从iOS应用程序中控制非iPod音乐播放器(如Spotify)

时间:2013-01-05 15:04:44

标签: objective-c ios avaudioplayer

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

iPod的使用方法是:

[[MPMusicPlayerController iPodMusicPlayer] pause];

和:

[[MPMusicPlayerController iPodMusicPlayer] play];

对于非iPod应用,这没有任何影响。

第二次尝试是启用闪避:

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

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

设置kAudioSessionCategory_SoloAmbientSound会停止所有音乐,但不会重启。

2 个答案:

答案 0 :(得分:3)

控制此方法的方法是使用AVAudioSession的{​​{1}}方法。

如果要播放声音,请将会话设置为活动状态:

setActive

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

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

iOS 6之前:

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

答案 1 :(得分:0)

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