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

zan*_*uja 5 background-music spotify audio-player ios swift

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

if MPMusicPlayerController.systemMusicPlayer().playbackState == .Playing {
    print("There is music playing")
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

szy*_*zym 12

鉴于iOS:如何检测音乐是否在任何背景音乐应用程序中播放?

Swift版本将是:

let isOtherAudioPlaying = AVAudioSession.sharedInstance().isOtherAudioPlaying()
Run Code Online (Sandbox Code Playgroud)

但是,开发人员文档建议从iOS 8.0开始,您应该使用secondaryAudioShouldBeSilencedHint:

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

  • 我们可以通过AVAudioPlayer获取现在播放的内容吗?或者可能获得数据?或任何其他信息? (2认同)