在哪里可以找到MediaCodec.createDecoderByType(字符串类型)中使用的完整类型列表?
Google's document仅提供部分列表。
更新[2015年6月3日]
根据pskink的提示,我运行了一段代码来提取华硕MeMO平板电脑上所有解码的MIME类型。这是清单
video/avc
video/3gpp
video/mp4v-es
audio/3gpp
audio/amr-wb
audio/mp4a-latm
audio/flac
audio/mp4a-latm
使用fadden(adb shell cat /system/etc/media_codecs.xml)建议的方法,我得到以下内容
<MediaCodec name="OMX.WMT.decoder.h263" type="video/3gpp" >
<Quirk name="requires-allocate-on-output-ports" />
</MediaCodec>
<MediaCodec name="OMX.WMT.decoder.avc" type="video/avc" >
<Quirk name="requires-allocate-on-output-ports" />
</MediaCodec>
<MediaCodec name="OMX.WMT.decoder.mpeg2v" type="video/mpeg2" >
<Quirk name="requires-allocate-on-output-ports" />
</MediaCodec>
<MediaCodec name="OMX.google.mp3.decoder" type="audio/mpeg" />
<MediaCodec name="OMX.google.amrnb.decoder" type="audio/3gpp" />
<MediaCodec name="OMX.google.amrwb.decoder" type="audio/amr-wb" />
<MediaCodec name="OMX.google.aac.decoder" type="audio/mp4a-latm" />
<MediaCodec name="OMX.google.g711.alaw.decoder" type="audio/g711-alaw" />
<MediaCodec name="OMX.google.g711.mlaw.decoder" type="audio/g711-mlaw" />
<MediaCodec name="OMX.google.vorbis.decoder" type="audio/vorbis" />
<MediaCodec name="OMX.google.mpeg4.decoder" type="video/mp4v-es" />
<MediaCodec name="OMX.google.h263.decoder" type="video/3gpp" />
<MediaCodec name="OMX.google.h264.decoder" type="video/avc" />
<MediaCodec name="OMX.google.vpx.decoder" type="video/x-vnd.on2.vp8" />
现在我怀疑并非所有在media_codecs.xml中声明的解码器都已实际实现。
更新[2015年6月13日]
@fadden提供的非常有用的信息:
CDD sections 5.1.1 - 5.1.3 "Video Codecs"列出了所有Android设备都需要支持的所有音频,图像和视频编解码器。我不确定有多少设备符合要求。我的两个Android设备错过了许多必需的编解码器。
答案 0 :(得分:1)
编解码器列表完全依赖于特定设备。您必须使用MediaCodecList枚举所有可用的编解码器,并调用MediaCodec.createDecoderByType作为正确的编解码器。