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.
Apple Musikspuren vielleicht? – Moritz
@EricD das war auch mein erster Gedanke ... –