MPMediaPickerController и MPMediaitemPropertyAssetUrl

Я ищу способ использовать MPMediaPickerController, чтобы пользователь мог выбрать песню. Я хочу, чтобы пользователь мог назначить путь к файлу песен кнопке, чтобы каждый раз, когда он / она нажимает кнопку, воспроизводилась эта конкретная песня. Я не хочу копировать файл в свое приложение, мне нужен только ярлык в музыкальной библиотеке пользователя. Мне кажется, что MPMediaItemPropertyAssetUrl - лучший вариант. Если я прав, код для настройки средства выбора мультимедиа выглядит так:

let mediaPicker = MPMediaPickerController(mediaTypes: .music)
mediaPicker.delegate = self
mediaPicker.prompt = "Select song (Icloud songs must be downloaded to use)"
mediaPicker.allowsPickingMultipleItems = false
mediaPicker.showsCloudItems = false
presentViewController(mediaPicker, animated: true, completion: {})

Моя путаница заключается в том, как добавить код, который будет возвращать URL-адрес ресурса пользователей, чтобы они могли добавить его к кнопке для воспроизведения?


person Pacifico    schedule 04.02.2016    source источник


Ответы (1)


Вам нужно будет вызвать функцию делегата:

func mediaPicker(mediaPicker: MPMediaPickerController, didPickMediaItems mediaItemCollection: MPMediaItemCollection)

Затем вы можете получить доступ к элементам мультимедиа (независимо от того, что выбрал пользователь) через MPMediaItemCollection:

for thisItem in mediaItemCollection.items as [MPMediaItem] {}

В этом блоке в конце указанной выше строки вы можете получить доступ к URL-адресу выбранного элемента следующим образом:

let itemUrl = thisItem.valueForProperty(MPMediaItemPropertyAssetURL) as? NSURL

Затем играйте с URL-адреса вашего плеера

person Cpt_JT    schedule 30.07.2016