Android 深入系统完全讲解(27)

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

讲完了这块我们来说下相机相关的再说之前一定记得先要有框架思维这点一直是我
强调的。
相机是什么硬件采集数据上来解析完成上层绘制在绘制的时候同步可以做特效
而特效的处理方式可以在底层驱动也可以在上层 APP。
先知道总体框架这样子遇到问题知道它属于哪部分如何攻克找代码思考的时候有方
向。然后在学习代码的时候一定要注意从已知接口相关类去深入利用调试网络的
分析汇总成自己的流程图。
下来我们来看下相机预览
SurfaceView surfaceView;
Camera camera;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
surfaceView = (SurfaceView) findViewById(R.id.surface_view);
surfaceView.getHolder().addCallback(this);
// 打开摄像头并将展示方向旋转 90 度
camera = Camera.open();
camera.setDisplayOrientation(90);
}
//------ Surface 预览 ------- @Override
public void surfaceCreated(SurfaceHolder surfaceHolder) {
try {camera.setPreviewDisplay(surfaceHolder);
camera.startPreview();
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void surfaceChanged(SurfaceHolder surfaceHolder, int format, int w, int h)
{
}
@Override
public void surfaceDestroyed(SurfaceHolder surfaceHolder) {
camera.release();
}
这里就能够明显的看到我们在思考问题的时候一定是利用核心逻辑 输入–控制–输出。
这个大的框架永远不变。 这里就是 相机硬件采集的数据进行转化在界面显示。
而硬件采集上来的数据格式是 NV21 和 YV12 安卓默认的格式是 YCbCr_420_SP 的格式
NV21格式之间的转化我们用 SDL2.0 库解决里面写好了各种格式的转化。
默认画布的格式是 ARGB8888 32 位的格式。
下来我们又要说一些别的了。数据不做解析说明就是一堆垃圾无意义的。数据存放读取
出来是需要按约定的读取方式获取否则解析出来就是错误的。
所以文件都是由两部分组成在这里插入图片描述
很简单却是很明确文件头代表什么算法文件内容代表数据。各种格式表示后续的数
据该怎么处理解析。
而音视频中一样视频格式音频格式mp4wav都是这里的文件头表明了后续的文
件内容的读取方式。
解码器支持的格式就是能够解决几种编码说到底就是对这些格式进行算法运算输出
正确的画面还有声音。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: android