获得Android设备支持的编解码器

有没有办法向Android设备询问它支持编码的音频和视频编解码器?

我发现设备不支持http://developer.android.com/guide/appendix/media-formats.html中强制列出的一些编解码器,似乎还有支持未在此列出的附加编解码器的设备。


这对你来说可能很有趣:

 private static MediaCodecInfo selectCodec(String mimeType) {
     int numCodecs = MediaCodecList.getCodecCount();
     for (int i = 0; i < numCodecs; i++) {
         MediaCodecInfo codecInfo = MediaCodecList.getCodecInfoAt(i);

         if (!codecInfo.isEncoder()) {
             continue;
         }

         String[] types = codecInfo.getSupportedTypes();
         for (int j = 0; j < types.length; j++) {
             if (types[j].equalsIgnoreCase(mimeType)) {
                 return codecInfo;
             }
         }
     }
     return null;
 }

在这里找到它。 正如你所看到的,你可以通过MediaCodecList.getCodecCount();获得安装的编解码器的数量MediaCodecList.getCodecCount(); 。 使用MediaCodecInfo codecInfo = MediaCodecList.getCodecInfoAt(i); 您会从列表中获取有关特定编解码器的信息。 codecInfo.getName()例如告诉你编解码器的标题/名称。


有没有办法向Android设备询问它支持编码的音频和视频编解码器?

我真的希望有,但至少通过ICS没有。

Jelly Bean提供了一个MediaCodec类。 虽然它没有“给我一个支持的编解码器列表”,但它的确有createEncoderByType() ,它传递的是MIME类型。 据推测,如果您不想支持所需的MIME类型,则会抛出RuntimeException或返回null 。 我不能承诺,仅仅因为MediaCodec报告说有一个编码器可以保证可以工作,比如MediaRecorder

链接地址: http://www.djcxy.com/p/84031.html

上一篇: Get supported Codec for Android device

下一篇: Is it possible to get the resolution of a video in Android?