是否可以在后台处理(从相机获取像素并应用某些算法)视频?也就是说,没有在屏幕上实际显示视频。
如果有可能,有哪些好的教程/示例?
答案 0 :(得分:2)
这可能有用。假设您已经有一个当前在屏幕上显示 camerapreview 的代码,请找到类似以下内容的行:
camera.setPreviewDisplay(nameofsurface);
并将其更改为
camera.setPreviewDisplay(null);
您的所有相机框架仍然可用 public void onPreviewFrame(byte []数据,相机相机)方法。
如果你还不知道怎么做,请添加以下几行 该方法在开始时将字节数组转换为位图 您的加工目的。
Camera.Parameters parameters = camera.getParameters();
int width = parameters.getPreviewSize().width;
int height = parameters.getPreviewSize().height;
ByteArrayOutputStream outstr = new ByteArrayOutputStream();
Rect rect = new Rect(0,0, width, height);
YuvImage yuvimage=new YuvImage(data,ImageFormat.NV21,width,height,null);
yuvimage.compressToJpeg(rect, 100, outstr);
Bitmap bmp = BitmapFactory.decodeByteArray(outstr.toByteArray(), 0, outstr.size());