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
需要此功能?
答案 0 :(得分:2)
MediaExtractor
是一个实现多路复用数据的容器或文件格式解析的模块。在文件中,将有多个track
对应于video
或audio
等特定数据。同样,在MP3
文件中,可能有多个轨道由其索引标识。函数中的索引对应于感兴趣的特定track
。
现在,为什么需要此功能?由于MP3Extractor
是框架中的另一个提取器,它必须支持此功能,其原因如下。我们以player
为例。 AwesomePlayer
是一个玩家引擎,用于设置整个管道。
在此过程中,播放器引擎将首先设置提取器,然后尝试创建像decoder
这样的下游组件来使用数据。 decoder
特定于由index
标识的曲目。为了创建decoder
,需要知道在meta
中表示或捕获的数据的特征,即将用于创建和初始化下游组件的元数据。