我正在努力使它,以便当有人在这个合适的视图触摸一个细胞,一首歌将开始播放。每个单元格都有一个与之关联的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,我无法找出原因。
谢谢你的帮助
最佳答案
经过多次测试,我发现问题是不能将非可选值强制转换为可选值。因此,在源代码中删除?
之后的NSURL
。希望有帮助。