Mar*_*hon 13 android codec mediarecorder
有没有办法向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;
}
Run Code Online (Sandbox Code Playgroud)
在这里找到它.如您所见,您可以获得已安装的编解码器的数量MediaCodecList.getCodecCount();.随MediaCodecInfo codecInfo = MediaCodecList.getCodecInfoAt(i);您可以从列表中获取有关特定编解码器的信息.codecInfo.getName()例如,告诉你编解码器的标题/名称.
有没有办法询问 Android 设备支持哪些音频和视频编解码器进行编码?
我真的希望有,但没有,至少通过 ICS 没有。
Jelly Bean 提供MediaCodec课程。虽然它没有“给我支持的编解码器列表”,但它确实有createEncoderByType(),您可以在其中传递 MIME 类型。据推测,如果不支持您所需的 MIME 类型,则会抛出RuntimeException 或 返回。null我不能保证仅仅因为MediaCodec报告编码器可用就保证它可以在MediaRecorder.