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
?
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
?
MediaExtractor
是实现多路复用数据的容器或文件格式解析的模块。在一个文件中会有多个track
s 对应于特定的数据,比如video
or audio
。类似地,在一个MP3
文件中,可能有多个由它们的索引标识的轨道。函数中的索引对应于特定track
的兴趣。
现在,为什么需要这个功能?由于MP3Extractor
是框架中的另一个提取器,它必须支持这个功能,原因如下。让我们player
以 为例。AwesomePlayer
是一个播放器引擎,它设置了整个管道。
在这个过程中,播放器引擎将首先设置提取器,然后尝试创建一个下游组件,如 adecoder
来消费数据。decoder
特定于由 标识的轨道index
。要创建一个decoder
,需要知道数据的特征,meta
即在元数据中表示或捕获的数据,元数据将用于创建和初始化下游组件。