我正在努力做到当有人触摸此 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,我不明白为什么。 感谢您的帮助
最佳答案
经过多次测试,我发现问题是您不能将非可选值强制转换为可选值。所以删除源代码中 NSURL
之后的 ?
。可能会有所帮助。
关于ios - 从 MPMediaItem 转换 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37233733/