2016-05-15 4 views
0

Ich habe eine Anwendung erstellt, die alle Songs auf einem Gerät abruft, einige ihrer Informationen in eine UITableView legt und dann einen Song einer ausgewählten Zelle mit einem AVAudioPlayer wiedergibt. Aus irgendeinem Grund scheint es jedoch, dass drei der Songs auf meinem Gerät keine URLs haben. Diese Songs wurden vor kurzem gekauft, vielleicht in den letzten zwei Monaten. Siehe den folgenden Code.URLs der auf iTunes gekauften Medien

//get all the songs 
var songsList: [MPMediaItem] = MPMediaQuery.songsQuery().items! 

if let url = song.valueForProperty(MPMediaItemPropertyAssetURL) as! NSURL? { 
      self.player = try! AVAudioPlayer(contentsOfURL: url) 
      let playing: Bool = player.play() 
      print("The audio play status: " + String(playing)) 
     } 
     else { 
      print("Failed to cast to URL") 
     } 

Aus irgendeinem Grund schlagen diese drei Lieder den Typ von AnyObject? nach NSURL? was bedeutet, dass die URL nicht auf dem Gerät existieren darf? Ich verstehe nicht. Meine einzige Vermutung ist, dass ich sie von iTunes auf einem anderen Macintosh-Gerät gekauft habe und sie dort über eine Cloud-Übertragung über meinen iTunes-Account gespeichert wurden. Jede Erklärung wäre eine große Hilfe.

+1

Apple Musikspuren vielleicht? – Moritz

+0

@EricD das war auch mein erster Gedanke ... –

Antwort

1

Sie können keine Asset-URL, wenn die Strecke

ist

A) nicht auf dem Gerät - zumindest nicht vollständig - aber auf Anfrage erhältlich/Strom zum Download bereit. Dies kann dadurch entstehen, dass man nicht vollständig gespielt wird; Gekauft auf anderen Geräten/über Family Sharing; ein Apple Match Track sein; Blabla.

B) DRM-geschützt. Das wird heutzutage ziemlich selten, dachte ich, aber es war ein großes Ding, zurück ein paar Jahren. Wenn die Datei die Erweiterung .m4p hat, ist das definitiv das Problem. Es gibt Berichte, dass es auch mit .m4a-Dateien auftaucht und in iTunes als "Gekaufte AAC-Audiodatei" angezeigt wird, wenn es heißt, dass es nicht erlaubt ist, das Audio zu erhalten.

+0

die URLs sind für einige der Songs null. Ich habe mp4a und mp3. Wenn sie mp4s wären, denke ich, dass sie immer noch auftauchen würden –