-3
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?

4

1 回答 1

2

MediaExtractor是实现多路复用数据的容器或文件格式解析的模块。在一个文件中会有多个tracks 对应于特定的数据,比如videoor audio。类似地,在一个MP3文件中,可能有多个由它们的索引标识的轨道。函数中的索引对应于特定track的兴趣。

现在,为什么需要这个功能?由于MP3Extractor是框架中的另一个提取器,它必须支持这个功能,原因如下。让我们player以 为例。AwesomePlayer是一个播放器引擎,它设置了整个管道。

在这个过程中,播放器引擎将首先设置提取器,然后尝试创建一个下游组件,如 adecoder来消费数据。decoder特定于由 标识的轨道index。要创建一个decoder,需要知道数据的特征,meta即在元数据中表示或捕获的数据,元数据将用于创建和初始化下游组件。

于 2014-01-10T00:43:22.933 回答