本文整理汇总了Java中android.media.MediaCodecInfo.CodecProfileLevel方法的典型用法代码示例。如果您正苦于以下问题:Java MediaCodecInfo.CodecProfileLevel方法的具体用法?Java MediaCodecInfo.CodecProfileLevel怎么用?Java MediaCodecInfo.CodecProfileLevel使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类android.media.MediaCodecInfo
的用法示例。
在下文中一共展示了MediaCodecInfo.CodecProfileLevel方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: chooseVideoEncoder
import android.media.MediaCodecInfo; //导入方法依赖的package包/类
private int chooseVideoEncoder() {
// choose the encoder "video/avc":
// 1. select default one when type matched.
// 2. google avc is unusable.
// 3. choose qcom avc.
vmci = chooseVideoEncoder(null);
//vmci = chooseVideoEncoder("google");
//vmci = chooseVideoEncoder("qcom");
int matchedColorFormat = 0;
MediaCodecInfo.CodecCapabilities cc = vmci.getCapabilitiesForType(VCODEC);
for (int i = 0; i < cc.colorFormats.length; i++) {
int cf = cc.colorFormats[i];
Log.i(TAG, String.format("vencoder %s supports color fomart 0x%x(%d)", vmci.getName(), cf, cf));
// choose YUV for h.264, prefer the bigger one.
// corresponding to the color space transform in onPreviewFrame
if (cf >= cc.COLOR_FormatYUV420Planar && cf <= cc.COLOR_FormatYUV420SemiPlanar) {
if (cf > matchedColorFormat) {
matchedColorFormat = cf;
}
}
}
for (int i = 0; i < cc.profileLevels.length; i++) {
MediaCodecInfo.CodecProfileLevel pl = cc.profileLevels[i];
Log.i(TAG, String.format("vencoder %s support profile %d, level %d", vmci.getName(), pl.profile, pl.level));
}
Log.i(TAG, String.format("vencoder %s choose color format 0x%x(%d)", vmci.getName(), matchedColorFormat, matchedColorFormat));
return matchedColorFormat;
}
示例2: getEncodVieoeCapability
import android.media.MediaCodecInfo; //导入方法依赖的package包/类
public static EncodeVideoCapability getEncodVieoeCapability(MediaCodec mediaCodec, String mime)
{
if( mediaCodec == null || Build.VERSION.SDK_INT < 18) {
return null;
}
EncodeVideoCapability retCapability = new EncodeVideoCapability();
//String mime = mEncodeFormat.getValue();
MediaCodecInfo codecInfo = mediaCodec.getCodecInfo();
MediaCodecInfo.CodecCapabilities capabilities = codecInfo.getCapabilitiesForType(mime);
int[] deviceColor = capabilities.colorFormats;
retCapability.colorFormat = deviceColor;
MediaCodecInfo.CodecProfileLevel[] profileLevels = capabilities.profileLevels;
if(null != profileLevels)
{
retCapability.profileLevel = new EncodeVideoCapability.ProfileLevel[profileLevels.length];
for(int i = 0; i < profileLevels.length; ++i)
{
retCapability.profileLevel[i] = new EncodeVideoCapability.ProfileLevel(profileLevels[i].profile, profileLevels[i].level);
}
}
Range<Integer> widthRange = null;
Range<Integer> heightRange = null;
if(Build.VERSION.SDK_INT >= 21) {
MediaCodecInfo.VideoCapabilities videoCapabilities = capabilities.getVideoCapabilities();
heightRange = videoCapabilities.getSupportedHeights();
widthRange = videoCapabilities.getSupportedWidths();
retCapability.heightAlignment = videoCapabilities.getHeightAlignment();
retCapability.widthAlignment = videoCapabilities.getWidthAlignment();
}
else //for old device limite max width / height
{
// retCapability.widthUpper = 1280;
// retCapability.widthLower = 176;
// retCapability.heightUpper = 720;
// retCapability.heightLower = 144;
retCapability.heightAlignment = 2;
retCapability.widthAlignment = 2;
}
if(null != widthRange)
{
retCapability.widthUpper = widthRange.getUpper();
retCapability.widthLower = widthRange.getLower();
}
if(null != heightRange)
{
retCapability.heightUpper = heightRange.getUpper();
retCapability.heightLower = heightRange.getLower();
}
return retCapability;
}
示例3: VideoEncodeParam
import android.media.MediaCodecInfo; //导入方法依赖的package包/类
public VideoEncodeParam(MediaCodecInfo.CodecProfileLevel codecProfileLevel, Range<Integer> widthRange, Range<Integer> heightRanger) {
this.codecProfileLevel = codecProfileLevel;
this.widthRange = widthRange;
this.heightRanger = heightRanger;
}