quel est l'index dans la fonction suivante ?
-
21-12-2019 - |
Question
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;
}
Pourquoi cette fonction est requise dans le MP3Extractor
?
La solution
MediaExtractor
est un module qui implémente l'analyse de conteneur ou de format de fichier de données multiplexées.Dans un fichier, il y aura plusieurs track
s qui correspondent à des données spécifiques comme video
ou audio
.De même, dans un MP3
fichier, il peut y avoir plusieurs pistes identifiées par leur index.L'index dans la fonction correspond à un spécifique track
d'intérêt.
Maintenant, pourquoi cette fonction est-elle requise ?Depuis MP3Extractor
est un autre extracteur du framework, il doit supporter cette fonction, dont la raison suit.Considérons le player
par exemple. AwesomePlayer
est un moteur de lecteur qui met en place l'ensemble du pipeline.
Dans ce processus, le moteur du lecteur configurerait d'abord l'extracteur, puis essaierait de créer un composant en aval comme un decoder
pour consommer les données.Le decoder
est spécifique à une piste identifiée par le index
.Créer un decoder
, il faut connaître les caractéristiques des données qui sont représentées ou capturées dans meta
c'est à dire.métadonnées qui seront utilisées pour créer et initialiser le composant en aval.