2013-12-11 13 views
30

Sto cercando di ottenere informazioni sulla canzone in riproduzione nell'app iOS di Spotify. Lo scenario è il seguente: Apri l'app Spotify per iOS, inizia a riprodurre una canzone. Metti l'app in background e apri la mia app per iOS. C'è un modo per far suonare la canzone su Spotify, nella mia app iOS?Ricevi brano corrente dall'app Spotify per iOS

Ho provato con la proprietà nowPlayingItem come descritto in questo post, ma non ha funzionato: On iPhone: Find out what song is currently playing? (in the iPod music player)

Ho provato con il [MPNowPlayingInfoCenter defaultCenter] .nowPlayingInfo come descritto in questo post, ma didn' t work: Is there a way to access the currently played track while the iPhone is connected to an accessory?

Ho visto la stessa domanda posta in questo post sui forum degli sviluppatori di Apple: https://devforums.apple.com/message/903640#903640.

Qualcuno ha riscontrato questo problema? Hai trovato una soluzione praticabile?

Grazie,

+0

possibile duplicato di [Determinare il brano riprodotto su iPhone dall'app di terze parti] (http://stackoverflow.com/questions/8542854/determine-song-being-played-on-iphone-by-third-party- app) – feco

+0

Non credo che questo sia un duplicato perché quella domanda richiede una soluzione generica, quindi qualsiasi risposta a tale domanda non può tenere conto di eventuali API specifiche di Spotify. –

+0

Questo può aiutare: [Ottenere i metadati visualizzati in MPNowPlayingInfoCenter's nowPlayingInfo] (http://stackoverflow.com/questions/20534939/get-meta-data-displayed-in-mpnowplayinginfocenters-nowplayinginfolock-screen-a) –

risposta

1

Se non sbaglio, Apple non permette il programma di condividere i dati (per motivi di sicurezza). Quindi forse questo è il problema.

+0

È necessario fornire dove hai preso quelle informazioni? – Buzinas

4

Ecco una soluzione a 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)") 
} 

nota che a partire da iOS 10, è necessario impostare una stringa di descrizione per NSAppleMusicUsageDescription nel Info.plist al fine di ottenere l'accesso alla musica dell'utente.

mediaItem sarà un'istanza di MPMediaItem se c'è qualcosa in riproduzione. È possibile accedere agli attributi dell'articolo multimediale utilizzando il metodo value(forProperty:). Questo metodo prende una proprietà. Le proprietà sono definite nella documentazione per `MPMediaItem sotto l'intestazione" Proprietà generali elementi chiave di media ".

+1

Funziona solo con il lettore iOS. Con app di terze parti come Spotify, 'mediaItem' è' nil'. – Rob

+0

Anche io sto cercando questo, c'è comunque l'accesso alle app di terze parti ora in riproduzione? – GarySabo

Problemi correlati