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

Posted

技术标签:

【中文标题】Swift - 检测音乐播放,无论是 Spotify 还是 iTunes【英文标题】:Swift - Detect music playing, whether it's Spotify or iTunes 【发布时间】:2016-11-18 00:51:14 【问题描述】:

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

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

很好,但这仅适用于 iTunes 播放器,不适用于可能来自其他应用的音乐,特别是关于 Spotify

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

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

【问题讨论】:

【参考方案1】:

给定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")

【讨论】:

我们能得到 AVAudioPlayer 正在播放的内容吗?或者也许获取数据?或任何其他相关信息?

以上是关于Swift - 检测音乐播放,无论是 Spotify 还是 iTunes的主要内容,如果未能解决你的问题,请参考以下文章

如何在其他视图中使用 Swift 中的 AVPlayer 暂停和播放音乐

iOS+Swift:为啥音乐不能在 iPad 上播放?

swift版QQ音乐播放器

Swift 3 游戏音乐播放

如何在 Xcode 6.4 Swift 应用程序中添加播放背景音乐? [复制]

在 viewDidLoad Swift 3 中循环播放音频音乐的问题