2016-07-14 6 views
5
iTunes

J'utilise actuellement la déclaration suivante pour détecter la musique:Swift - Détecter jouer de la musique, que ce soit Spotify ou

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

Grand, mais cela ne fonctionne que pour lecteur iTunes, et non la musique qui pourrait être à venir d'une application différente, en parlant spécifiquement de Spotify.

Je n'ai pas besoin de connaître la chanson en cours de lecture, simplement s'il y a quelque chose qui joue, donc je peux décider si je fournis ma propre musique de fond pour mon jeu ou non. Éditer: idéalement, la solution devrait couvrir n'importe quel programme de musique de tierce partie, pas seulement Spotify.

Répondre

10

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

la version Swift serait:

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

Cependant, la developer docs suggèrent que commencer par iOS 8.0, vous devez utiliser secondaryAudioShouldBeSilencedHint à la place:

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

pouvons-nous obtenir ce qui est joue maintenant par AVAudioPlayer? ou peut-être obtenir les données? ou toute autre information à ce sujet? –