Swift - 检测音乐播放,无论是Spotify还是iTunes

时间:2016-07-14 22:53:41

标签: ios swift spotify audio-player background-music

我目前正在使用以下语句来检测音乐:

if MPMusicPlayerController.systemMusicPlayer().playbackState == .Playing {
    print("There is music playing")
}

很好,但是这只适用于iTunes播放器,而不是可能来自不同应用的音乐,特别是谈论 Spotify

我不需要知道正在播放的歌曲,只是说是否有任何播放,所以我可以决定是否为我的游戏提供自己的背景音乐。

编辑:理想情况下,解决方案应涵盖任何第三方音乐节目,而不仅仅是Spotify。

1 个答案:

答案 0 :(得分:11)

给定iOS: How do I detect if music is playing in any background music app?

Swift版本将是:

let isOtherAudioPlaying = AVAudioSession.sharedInstance().isOtherAudioPlaying()

但是,developer docs建议从iOS 8.0开始,您应该使用secondaryAudioShouldBeSilencedHint代替:

if (AVAudioSession.sharedInstance().secondaryAudioShouldBeSilencedHint()) {
   print("another application with a non-mixable audio session is playing audio")
}