2013-12-11 16 views
30

Ich versuche, Informationen über den aktuellen Titel in Spotify iOS App zu erhalten. Das Szenario sieht wie folgt aus: Öffnen Sie die Spotify iOS App und starten Sie die Wiedergabe eines Songs. Setzen Sie die App in den Hintergrund und öffnen Sie meine iOS App. Gibt es eine Möglichkeit, den Song in meiner iOS App auf Spotify abzuspielen?Aktuellen Spieltitel von Spotify iOS App abrufen

Ich habe versucht, die nowPlayingItem Eigenschaft, wie in diesem Beitrag beschrieben, aber es hat nicht funktioniert: On iPhone: Find out what song is currently playing? (in the iPod music player)

ich versucht habe, mit dem [MPNowPlayingInfoCenter defaultCenter] .nowPlayingInfo wie in diesem Beitrag beschrieben, aber es didn‘ t Arbeit: Is there a way to access the currently played track while the iPhone is connected to an accessory?

Ich habe die gleiche Frage in diesem Beitrag in Apple-Entwicklerforen gefragt: https://devforums.apple.com/message/903640#903640.

Hat jemand dieses Problem festgestellt? Haben Sie eine praktikable Lösung gefunden?

Danke,

+0

mögliches Duplikat von [Bestimme das Lied, das auf dem iPhone von einer Drittanbieter-App abgespielt wird] (http://stackoverflow.com/questions/8542854/determine-song-gone-played-on-iphone-by-third-party- App) – feco

+0

Ich glaube nicht, dass dies ein Duplikat ist, weil diese Frage nach einer generischen Lösung fragt, so dass alle Antworten auf diese Frage keine Spotify-spezifischen APIs berücksichtigen können. –

+0

Dies kann Ihnen helfen: [Holen Sie Metadaten angezeigt in MPNowPlayingInfoCenter nowplayinginfo] (http://stackoverflow.com/questions/20534939/get-meta-data-displayed-in-mpnowplayinginfocenters-nowplayinginfolock-screen-a) –

Antwort

1

Wenn ich mich nicht falsch, von Apple nicht Programm ermöglichen, Daten zu teilen (aus Sicherheitsgründen). Vielleicht ist das das Problem.

+0

Sie sollten bereitstellen wo hast du diese Info gefunden? – Buzinas

4

Hier ist eine Lösung in Swift 3:

let player = MPMusicPlayerController.systemMusicPlayer() 
if let mediaItem = player.nowPlayingItem { 
    let title: String = mediaItem.value(forProperty: MPMediaItemPropertyTitle) as! String 
    let albumTitle: String = mediaItem.value(forProperty: MPMediaItemPropertyAlbumTitle) as! String 
    let artist: String = mediaItem.value(forProperty: MPMediaItemPropertyArtist) as! String 

    print("\(title) on \(albumTitle) by \(artist)") 
} 

Beachten Sie, dass iOS ab 10, können Sie einen Beschreibungsstring für NSAppleMusicUsageDescription in der Info.plist, um die Benutzer-Musik zu bekommen Zugang festlegen.

mediaItem wird eine Instanz von MPMediaItem sein, wenn etwas spielt. Sie können auf die Attribute des Medienelements zugreifen, indem Sie die Methode value(forProperty:) verwenden. Diese Methode benötigt eine Eigenschaft. Die Eigenschaften sind in der Dokumentation zu `MPMediaItem unter der Überschrift" Allgemeine Media Item Property Keys "definiert.

+1

Dies funktioniert nur mit dem iOS-Player. Mit Apps von Drittanbietern wie Spotify ist 'mediaItem'' nil'. – Rob

+0

Ich suche das auch, gibt es sowieso Zugriff auf 3rd-Party-Apps 'Now Playing Info? – GarySabo