multimedia框架之加载media extractor组件
Extractor概念
Extractor在multimedia框架扮演着解析器的角色,用于解析文件的封装。extractor会把视频文件解析成音频流和视频流,把音频文件解析成音频流。
关键类说明
-
NuMediaExtractor:在NuMediaExtractor中,会去保存RemoteMediaExtractor的远程代理对象,也就是binder client。它其实就是针对MediaExtractor的再一次封装,比如它在调用RemoteMediaExtractor获取文件格式的时候,获取得到的是MetaData,然后它会对MetaData进行处理,转化成AMessage,然后再送给调用者。这个类一般是调用SoundPool解析音频文件的时候才会用到的。使用MediaPlayer播放音频文件是不会走这个类的。
-
RemoteMediaExtractor:binder server。RemoteMediaExtractor跟RemoteDataSource的作用是相似的,它也是将MediaExtractor保存为私有变量中,它的binder client通过它可以访问到MediaExtractor,间接解析多媒体文件。
-
MediaExtractorFactory:工具类,里面都是static函数。用于加载extractor组件,创建idatasource等
-
MediaExtractor:extractor组件需继承它。在9.0的版本中,它只是一个类而已,通过其他binder服务来调用它,间接binder化。通过它可以获得解析器的音频轨或者视频轨的信息。