У меня есть приложение, которое позволяет вам искать название песни в музыкальной библиотеке и воспроизводить ее. Я воспроизвести выбранную песню, используя этот код:MPMusicPlayerController.play() не работает после убийства музыкального приложения iOS
func playSongByPersistentID(id: Int) { //id is the persistent id of chosen song
let predicate = MPMediaPropertyPredicate(value: id, forProperty: MPMediaItemPropertyPersistentID)
let songQuery = MPMediaQuery()
songQuery.addFilterPredicate(predicate)
if songQuery.items?.count < 1 {
print("Could Not find song") // make alert for this
return
} else {
print("gonna play \(songQuery.items?[0].title)")
}
musicPlayer.prepareToPlay()
musicPlayer.setQueueWithItemCollection(songQuery.collections![0])
musicPlayer.play()
}
выше функция вызывается в tableView(:didSelectRowAtIndexPath)
. Я подтвердил, что правильный текст и название песни извлекаются при выборе песни.
Вот моя проблема. Если я зайду в свое приложение и выберу песню, чтобы сыграть после убийства музыкального приложения iOS, песня не воспроизводится. Если я тогда выберу другую песню, эта игра не играет никакой проблемы. Если я выберу ту же песню снова и снова, она никогда не играет.
musicPlayer
- systemMusicPlayer
, заявленный в моем классе.
Является ли это ошибкой iOS? Я понятия не имею, что происходит.
Я думаю, что это ошибка. Я борюсь с чем-то подобным в своем приложении - я дам вам знать, если я столкнулся с обходными решениями. –
Спасибо. Это было очень неприятно. – MortalMan