Swift - 检测正在播放的音乐,无论是 Spotify 还是 iTunes
Swift - Detect music playing, whether it's Spotify or iTunes
我目前正在使用以下语句来检测音乐:
if MPMusicPlayerController.systemMusicPlayer().playbackState == .Playing {
print("There is music playing")
}
很好,但这仅适用于 iTunes 播放器,不适用于可能来自其他应用程序的音乐,特别是 Spotify。
我不需要知道正在播放的歌曲,只需要知道是否有任何东西在播放,所以我可以决定是否为我的游戏提供我自己的背景音乐。
编辑:理想情况下,解决方案应涵盖任何第 3 方音乐程序,而不仅仅是 Spotify。
给定 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")
}
我目前正在使用以下语句来检测音乐:
if MPMusicPlayerController.systemMusicPlayer().playbackState == .Playing {
print("There is music playing")
}
很好,但这仅适用于 iTunes 播放器,不适用于可能来自其他应用程序的音乐,特别是 Spotify。
我不需要知道正在播放的歌曲,只需要知道是否有任何东西在播放,所以我可以决定是否为我的游戏提供我自己的背景音乐。
编辑:理想情况下,解决方案应涵盖任何第 3 方音乐程序,而不仅仅是 Spotify。
给定 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")
}