2016-07-14 4 views
5

настоящее время я использую следующее заявление для обнаружения музыки:Swift - Обнаружение воспроизведения музыки, будь то Spotify или ITunes

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

Великий, однако это будет работать только для ITunes плеер, а не музыки, которые могут приходить из другого приложения, в частности говоря о Spotify.

Мне не нужно знать, какая песня играет, просто есть ли вообще что-либо, поэтому я могу решить, предоставляю ли я свою собственную фоновую музыку для своей игры или нет.

Редактировать: в идеале решение должно охватывать любую стороннюю музыкальную программу, а не только Spotify.

ответ

10

Учитывая iOS: How do I detect if music is playing in any background music app?

Свифт версия будет:

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

Однако developer docs предположить, что, начиная с прошивкой 8.0, вы должны использовать secondaryAudioShouldBeSilencedHint вместо:

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

мы можем получить то, теперь проигрывается AVAudioPlayer? или, может быть, получить данные? или любую другую информацию об этом? –

Смежные вопросы