Использование AVQueuePlayer для получения информации о текущей дорожке

Я загружаю свою библиотеку iPod в AVQueuePlayer и играю в нее, используя это:

[[AVQueuePlayer alloc]]initWithItems:[MPMediaCollectionInstance items] ];  //just one line.

Но как узнать, какой MPMediaItem воспроизводится в данный момент? Я хочу знать информацию, такую ​​​​как имя исполнителя / песни и т. Д. Спасибо.


person Z S    schedule 21.11.2011    source источник


Ответы (1)


Имейте экземпляр AVQueuePlayer, который вы выделили.

AVQueuePlayer *_queuePlayer = [[AVQueuePlayer alloc] initWithItems:[MPMediaCollectionInstance items]];

С помощью этого экземпляра вы можете получить AVPlayerItem.

AVPlayerItem *currentItem = _queuePlayer.currentItem; 

Для приведенной выше строки проверьте документация.

А теперь попробуйте следующий код

NSArray *metadataList = [currentItem.asset commonMetadata];
for (AVMetadataItem *metaItem in metadataList) {
    NSLog(@"%@",[metaItem commonKey]);
}

Что даст список следующим образом:

title
creationDate
artwork
albumName
artist

Теперь вы можете получить значение для соответствующих ключей. Для этого вам необходимо обратиться к этот документ тоже.

person Ilanchezhian    schedule 21.11.2011
comment
Кажется, я получаю пустой массив для metadataList. Когда вы вызываете код для получения метаданных? Сразу после игры в очереди? - person Z S; 21.11.2011
comment
Пожалуйста, проверьте, есть ли у вас действительные объекты _queuePlayer и currentItem. Да, нам нужно вызывать это после воспроизведения очереди. - person Ilanchezhian; 21.11.2011
comment
Он все еще приходит пустой. Я запускаю это на устройстве iOS5. Я попробовал это сразу после инициализации очереди и вызова play. Я также пробовал это в уведомлении KVO, отправленном в playerItem, который был поставлен в очередь... в обоих случаях commonMetadata возвращает пустой массив. - person Z S; 21.11.2011
comment
Судя по всему, это работает: NSArray *metadataListPlaying = [currentItem.asset metadataForFormat:@com.apple.itunes]; это дает массив из 8 ключей. Не уверен, в чем разница и какие форматы мне следует использовать, если я выбираю песни из библиотеки iPod. - person Z S; 21.11.2011