【问题标题】:Casting URL from MPMediaItem从 MPMediaItem 投射 URL
【发布时间】:2016-09-11 01:14:06
【问题描述】:

我正在尝试让当有人触摸此 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,我不知道为什么。 感谢您的帮助

【问题讨论】:

    标签: ios swift uitableview casting avaudioplayer


    【解决方案1】:

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

    【讨论】:

    • 我得到一个错误参数标签'(_:)'不匹配任何可用的重载
    • @JackFrye 我错过了参数名称...更新了我的答案。
    • 无法转换“AnyObject”类型的值?到预期的参数类型“字符串”
    • 我应该这样吗?细绳?在 NSURL 构造函数内部?
    • @JackFrye 作为!细绳。因为你确定它是字符串。
    猜你喜欢
    • 2012-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多