MPMediaItemPropertyTitle с MPMediaPlayer и Podcast вызывает фатальную ошибку
Мой MPMediaplayer работает довольно хорошо для музыки, но когда я начинаю работать с подкастами, все по-другому.
Я пытаюсь получить две вещи: 1) Название Название Подкаста ("Эта американская Жизнь") 2) Название Эпизода ("Мой Праздник")
Эта строка кода отлично работает для получения заголовка подкаста:
let podTitle:String = (myMP.nowPlayingItem?.podcastTitle)!
Однако эта строка должна получить название эпизода:
let episode:String = myMP.nowPlayingItem?.value(forProperty: "MPMediaItemPropertyTitle") as! String
но вызывает сбой с этой ошибкой:
фатальная ошибка: неожиданно найден ноль при развертывании необязательного значения
Как я могу получить заголовок эпизода для данного подкаста?
1 ответ
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 ?? ""
Таким образом, вы всегда получите строку, которая может быть пустой, если возникнет проблема, и вы не потерпите крах.