MPMediaItemPropertyTitle与MPMediaPlayer和Podcast导致致命错误

时间:2017-02-19 00:53:34

标签: swift3 ios10 mpmediaplayercontroller

我的MPMediaplayer在音乐方面做得很好,但是当我开始使用播客时,情况就不同了。

我试图得到两件事: 1)Podcast标题的名称(" This American Life") 2)剧集标题("我的假期")

这行代码可以很好地获取播客标题:

let podTitle:String = (myMP.nowPlayingItem?.podcastTitle)!

然而,这一行应该得到剧集标题:

let episode:String = myMP.nowPlayingItem?.value(forProperty: "MPMediaItemPropertyTitle") as! String

但导致此错误崩溃:

  

致命错误:在解包可选值时意外发现nil

如何获取给定播客的剧集标题?

1 个答案:

答案 0 :(得分:0)

let episode:String = myMP.nowPlayingItem?.value(forProperty: "MPMediaItemPropertyTitle") as! String 不是字符串属性键;它是常量的名称,其是属性键。那么,你在哪里

let episode:String = 
  myMP.nowPlayingItem?.value(forProperty: MPMediaItemPropertyTitle) as! String

...删除引号:

let temp = myMP.nowPlayingItem?.value(forProperty: MPMediaItemPropertyTitle)
let episode = temp as? String ?? ""

我认为你所做的事情仍然非常愚蠢(你要求崩溃),但至少这样你就有成功的机会。我所做的实际上更像是这样:

{{1}}

这样你总会得到一个字符串,如果出现问题可能会为空,你不会崩溃。