前言
我们在前面学习的内容都是为了如何通过Camera预览获得录制的视频,然后把音频和视频上传到服务器或把音频与视频合成本地文件保存打好基础;但我们在还需要学习Camera预览的格式以及MediaCodec编解码的颜色格式的联系,否则我们在合成视频、上传到服务器的视频播放时会有颜色异常;比如:颜色不对、彩色变成黑白等等。
知识结构
1、Camera预览格式
Camera预览格式:NV21、YV12
通过以下代码获取手机支持的camera格式:
List<Integer> previewFormats = mCamera.getParameters().getSupportedPreviewFormats();
基本上就是上面的两种
2、MediaCodec编解码颜色格式
手机MediaCodec编解码颜色格式一般为:YUV420Planar/I420SemiPlanner 它们中的一个;
我们可以通过以下代码获得手机支持的MediaCodec编解码颜色格式:
package com.example.inflaterviewtest;
import java.util.Arrays;
import android.annotation.SuppressLint;
import android.media.MediaCodecInfo;
import android.media.MediaCodecList;
import android.util.Log;
public class MyMediaCodec {
private static final String TAG = "MyMediaCodec";
@SuppressLint("NewApi")
public void getMediaCodecList(){
//获取解码器列表
int numCodecs = MediaCodecList.getCodecCou