qual é o índice na seguinte função?
-
21-12-2019 - |
Pergunta
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;
}
Por que esta função é necessária no MP3Extractor
?
Solução
MediaExtractor
é um módulo que implementa a análise de contêiner ou formato de arquivo de dados multiplexados.Em um arquivo haverá vários track
s que correspondem a dados específicos como video
ou audio
.Da mesma forma, em um MP3
arquivo, pode haver várias faixas identificadas por seu índice.O índice na função corresponde a um específico track
de interesse.
Agora, por que essa função é necessária?Desde MP3Extractor
é outro extrator no framework, ele deve suportar esta função, cujo motivo é o seguinte.Vamos considerar o player
como um exemplo. AwesomePlayer
é um mecanismo de player que configura todo o pipeline.
Neste processo, o mecanismo do player configuraria o extrator primeiro e depois tentaria criar um componente downstream como um decoder
para consumir os dados.O decoder
é específico para uma pista que é identificada pelo index
.Para criar um decoder
, é necessário conhecer as características dos dados que são representados ou capturados em meta
ou sejametadados que serão empregados para criar e inicializar o componente downstream.