Что такое индекс в следующей функции?
sp<MetaData> MP3Extractor::getTrackMetaData(size_t index, uint32_t flags) {
ALOGE("%s\t%d",__FUNCTION__,__LINE__);
if (mInitCheck != OK || index != 0) {
return NULL;
}
return mMeta;
}
Почему эта функция требуется в MP3Extractor
?
1 ответ
MediaExtractor
это модуль, который реализует разбор мультиплексированных данных в формате контейнера или файла В файле будет несколько track
s, которые соответствуют конкретным данным, таким как video
или же audio
, Точно так же в MP3
файла, может быть несколько дорожек, которые идентифицируются по их индексу. Индекс в функции соответствует определенному track
представляет интерес.
Теперь, почему эта функция требуется? поскольку MP3Extractor
это еще один экстрактор в рамках, он должен поддерживать эту функцию, причина которой заключается в следующем. Давайте рассмотрим player
В качестве примера. AwesomePlayer
это движок игрока, который устанавливает весь конвейер.
В этом процессе движок плеера сначала установит экстрактор, а затем попытается создать нисходящий компонент, такой как decoder
потреблять данные. decoder
относится к треку, который идентифицируется index
, Чтобы создать decoder
необходимо знать характеристики данных, которые представлены или захвачены в meta
т.е. метаданные, которые будут использоваться для создания и инициализации нисходящего компонента.