获得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 。 
上一篇: Get supported Codec for Android device
下一篇: Is it possible to get the resolution of a video in Android?
