2016-07-14 7 views
5

나는 현재 음악을 감지하기 위해 다음과 같은 성명을 사용하고 있습니다 : 그 올 수도를스위프트 - 그것은 스포티 파이 여부, 음악 연주를 감지 또는 iTunes

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

위대한, 그러나 이것은 단지 아이튠즈 플레이어, 그리고 음악에 대한 작동을 다른 앱에서 구체적으로 말하면 Spotify입니다.

나는 연주되는 노래가 무엇인지 전혀 알 필요가 없으므로 게임을 할 때 내 자신 만의 배경 음악을 제공할지 여부를 결정할 수 있습니다.

편집 : 이상적으로 솔루션은 Spotify뿐 아니라 타사 음악 프로그램도 포함해야합니다.

답변

10

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

감안할 스위프트 버전은 다음과 같습니다 그러나

let isOtherAudioPlaying = AVAudioSession.sharedInstance().isOtherAudioPlaying() 

developer docs는 아이폰 OS 8.0로 시작하는 대신 secondaryAudioShouldBeSilencedHint를 사용해야하는 것이 좋습니다 :

if (AVAudioSession.sharedInstance().secondaryAudioShouldBeSilencedHint()) { 
    print("another application with a non-mixable audio session is playing audio") 
} 
+1

우리가 무엇을 얻을 수 있습니다 지금 AVAudioPlayer가 재생 중입니까? 또는 데이터를 가져 오는 중입니까? 또는 그것에 관한 다른 어떤 정보? –