代码之家  ›  专栏  ›  技术社区  ›  zantuja

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

  •  6
  • zantuja  · 技术社区  · 8 年前

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

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

    很好,但这只适用于iTunes播放器,而不是来自其他应用程序的音乐,特别是 Spotify网站 .

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

    1 回复  |  直到 8 年前
        1
  •  13
  •   Community CDub    8 年前

    鉴于 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")
    }