在Android 21(Android 5.0)及以上版本中,可以使用MediaCodecList类获取所有支持的视频大小。以下是示例代码:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
MediaCodecList codecList = new MediaCodecList(MediaCodecList.REGULAR_CODECS);
MediaCodecInfo[] codecInfos = codecList.getCodecInfos();
for (MediaCodecInfo info : codecInfos) {
if (!info.isEncoder()) {
continue;
}
String[] types = info.getSupportedTypes();
for (String type : types) {
if (!type.equalsIgnoreCase("video/avc")) {
continue;
}
MediaCodecInfo.CodecCapabilities caps =
info.getCapabilitiesForType(type);
MediaCodecInfo.VideoCapabilities videoCaps =
caps.getVideoCapabilities();
Size[] sizes = videoCaps.getSupportedSizes();
for (Size size : sizes) {
Log.d(TAG, "Supported video size: " + size.toString());
}
}
}
}
上述代码通过获取MediaCodecList类的实例,在所有编码器信息中查找支持的视频类型(这里是H.264/AVC),并使用getCapabilitiesForType方法查找支持的视频大小列表,最后将其打印出来。请注意,该示例只适用于H.264编码器,如果您需要支持其他视频编码格式,您可以替换“video/avc”字符串。