2016-07-14 117 views
5

我目前使用下面的语句来检测的音乐:斯威夫特 - 检测播放音乐,无论是Spotify的或iTunes

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

大,但这只适用于iTunes的播放器,而不是音乐作品,可能是未来从一个不同的应用程序,具体谈论Spotify

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

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

回答

10

鉴于iOS: How do I detect if music is playing in any background music app?

雨燕的版本将是:

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") 
} 
+1

我们可以得到什么现在由AVAudioPlayer播放?或者可能获取数据?或任何其他信息呢? –