从MPMediaItem转换URL

时间:2016-05-15 01:53:11

标签: ios swift uitableview casting avaudioplayer

我试图让它成为当有人触摸这个UITableView中的一个单元格时,一首歌就会开始播放。每个单元格都有一个与之关联的MPMediaItem。我想用AVAudioPlayer播放歌曲。我正在尝试获取MPMediaItem的url并使用它来获取AVAudioPlayer的歌曲。

var songsList: [MPMediaItem] = MPMediaQuery.songsQuery().items!
var player = AVPlayer()

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
        let song = songsList[indexPath.section]
        if let url = song.valueForProperty(MPMediaItemPropertyAssetURL) as! NSURL? {
            let newPlayerItem = AVPlayerItem(URL: url)
            player.replaceCurrentItemWithPlayerItem(newPlayerItem)
            player.play()
        }
        else {
            print("Failed to cast to URL")
        }


    }

变量url无法转换为NSURL,我无法弄清楚原因。 谢谢你的帮助

1 个答案:

答案 0 :(得分:0)

经过多次测试后,我发现问题是您无法将非可选值强制转换为可选值。因此,请在原始代码中的?后删除NSURL。愿它有所帮助。