Предполагая, что вы уже знаете, какие метаданные отправляются из потока (если вы этого не делаете, используйте для просмотра медиаплеер, например, VLC), вы должны сначала зарегистрировать уведомление, чтобы получать метаданные через определенные интервалы времени, а затем метод для их обработки.
Начиная с уведомления, просто
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(MetadataUpdate:)
name:MPMoviePlayerTimedMetadataUpdatedNotification
object:nil];
после выделения MPMoviePlayerController.
Затем по методу MetadataUpdate
- (void)MetadataUpdate:(NSNotification*)notification
{
if ([streamAudioPlayer timedMetadata]!=nil && [[streamAudioPlayer timedMetadata] count] > 0) {
MPTimedMetadata *firstMeta = [[streamAudioPlayer timedMetadata] objectAtIndex:0];
metadataInfo = firstMeta.value;
}
}
где streamAudioplayer - это ваш MPMoviePlayerController, а metadataInfo - строка NSS для хранения значения. Выше будет получена информация об исполнителе и треке текущей воспроизводимой песни.
Это относится к стандартным метаданным, отправляемым потоком shoutcast или icecast.
(не могу сказать за других, потому что я их не пробовал)
Обратите внимание, что каждый поток может обрабатывать и отправлять разные метаданные.
Поскольку [streamAudioPlayer timedMetadata] является NSArray, вы можете
NSArray *metaArray = [streamAudioPlayer timedMetadata];
NSLog (@"%i", [metaArray count]); //to see how many elements in the array
MPTimedMetadata *firstMeta = [[streamAudioPlayer timedMetadata] objectAtIndex:0];
Затем используйте консоль отладки для отображения содержимого метаданных с использованием свойств key, keyspace, timestamp, value.
Все вышеизложенное является лишь примером. Не существует единого способа обработки метаданных.
Подробную информацию можно найти на
https://developer.apple.com/library/ios/#DOCUMENTATION/MediaPlayer/Reference/MPTimedMetadata_Class/Reference/Reference.html
для ссылки на класс MPTimedMetadata и оттуда ... код на!