0

我的 MPMediaplayer 在音乐方面运行良好,但当我开始使用 Podcast 时,情况就不同了。

我试图得到两件事:1)播客标题(“美国生活”)的名称2)剧集标题(“我的假期”)

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

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

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

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

但会导致崩溃并出现此错误:

致命错误:在展开可选值时意外发现 nil

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

4

1 回答 1

0

MPMediaItemPropertyTitle不是字符串属性键;它是一个常量的名称,其值为属性键。所以,你在哪里

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 ?? ""

这样你总是得到一个字符串,如果有问题,它可能是空的,你不会崩溃。

于 2017-02-19T03:17:53.627 回答