媒体的网址在iTunes上购买

时间:2016-05-15 14:16:47

标签: ios iphone swift uitableview itunes

我创建了一个应用程序,它可以获取设备上的所有歌曲,将一些信息放在UITableView中,然后使用AVAudioPlayer播放所选单元格的歌曲。但是出于某种原因,我的设备上的三首歌似乎没有网址。这些歌曲最近被收购,也许是在最近两个月。请参阅下面的代码。

//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")
        }

出于某种原因,这三首歌曲失败了AnyObject的类型?到NSURL?意味着网址必须不存在于设备上?我不明白。我唯一的猜测是我在另一台Macintosh设备上从iTunes购买它们,并通过我的iTunes帐户通过云传输存储在那里。任何解释都会有很大的帮助。

1 个答案:

答案 0 :(得分:1)

如果曲目

,您无法获得资产网址

A)不在您的设备上 - 至少不完全 - 但可以按需下载/流式传输。这可以通过不完全播放而产生;在其他设备上购买/通过家庭共享;成为Apple Match赛道; yadayadayada。

B)受DRM保护。这些天我觉得这种情况变得非常罕见,但几年之后这是一件大事。如果文件的扩展名为.m4p,那肯定是个问题。据报道,它也出现在.m4a文件中,并在iTunes中显示为"已购买的AAC音频文件"表示它表示您不允许获取所述音频。