MediaCodec.createDecoderByType 的类型列表(字符串类型)

Type list of MediaCodec.createDecoderByType (String type)

在哪里可以找到 MediaCodec.createDecoderByType(字符串类型)中使用的类型的完整列表?

Google's document只给出了部分列表。

更新[2015-06-03]

根据 pskink 的提示,我 运行 一段代码用于在 Asus 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-06-13]

@fadden 提供的非常有用的信息:

CDD sections 5.1.1 - 5.1.3 "Video Codecs" 列出所有 Android 设备需要支持的所有音频、图像和视频编解码器。我不确定有多少设备符合要求。我的两个 Android 设备缺少许多必需的编解码器。

编解码器列表完全取决于特定设备。您必须使用 MediaCodecList 枚举所有可用的编解码器,然后为正确的编解码器调用 MediaCodec.createDecoderByType。