Получить название песни из MPMediaItemCollection

Я пытаюсь переписать мой старый плеер с Objective-C на Swift (по памяти) и попал в беду. У меня есть множество таких песен

let query = MPMediaQuery.songsQuery()
query.groupingType = MPMediaGrouping.Title
songsArray = query.collections

Затем в моем табличном представлении я пытаюсь получить имя каждого элемента мультимедиа для cell.textLabel, Как это:

var mediaItem = songsArray.objectAtIndex(indexPath.row)
var title = mediaItem.valueForProperty(MPMediaItemPropertyTitle)

Но я не получаю MPMediaItems, я получаю коллекцию предметов. Итак, как я могу взять MPMediaItem из массива MPMediaItemCollections и получить заголовок?

1 ответ

Решение

Если вы хотите использовать группировку коллекции элементов мультимедиа и получить информацию о группе дорожек внутри них, вы можете получить доступ к представителю MPMediaItem содержимого коллекции через MPMediaItemCollection. representativeItem имущество.

let collection = songsArray.objectAtIndex(indexPath.row) as! MPMediaItemCollection
let representativeItem = collection.representativeItem
let title = representativeItem.title

Примечание: если вы предпочитаете работать с массивом MPMediaItems, вы можете рассмотреть возможность использования MPMediaQuery items собственность, а не ее collections имущество.

Другие вопросы по тегам