我正在尝试这样做,这样当有人触摸这个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,我无法找出原因。谢谢你的帮助
发布于 2016-05-15 10:00:39
经过多次测试,我发现问题在于不能将非可选值转换为可选值。因此,在源代码中删除NSURL之后的?。希望它能帮上忙。
https://stackoverflow.com/questions/37233733
复制相似问题