作者jaq865ttu (恶男)
看板AndroidDev
标题[问题] 分析摄影机资料串流
时间Mon Nov 21 18:47:13 2011
大家好,我是Android开发新手,想请问板上高手,
我开发的手机其摄影机有3颗镜头(前镜头+後镜头*2)
我的目的是分别得到後方左镜头和右镜头的摄影机预览,
而不是已经经过处理的3D预览画面,我有看过该设备提供的文件,
其3D影像格式可以设定成是side by side
所以我的做法是将其预览的资料串流使用setPreviewCallbackWithBuffer来处理,
先将3D影像预览画面存到一个buffer中,在转成RGB色彩空间,最後再把此buffer
分成两个(因为其格式是side by side)buffer,照理可以得到存左和右镜头预览
画面的buffer,但是在执行到转成RGB色彩空间执行时却出错,
出现"此程序未正常中止"的错误,想请教是否有那边写错以及
以上的做法是否能实现我的目的,或是要往底层去做开发达到分别获得
左右镜头的预览画面,谢谢。
程式码如下:
// 产生 buffer
PixelFormat p=new PixelFormat();
PixelFormat.getPixelFormatInfo(parameters.getPreviewFormat(),p);
int bufSize=(optimalSize.width*optimalSize.height*p.bitsPerPixel)/8;
// 把buffer给preview callback备用
byte[] buffer=new byte[bufSize];
camera.addCallbackBuffer(buffer);
buffer=new byte[bufSize];
camera.addCallbackBuffer(buffer);
buffer=new byte[bufSize];
camera.addCallbackBuffer(buffer);
// 设定预览画面更新时的callback。 Since: API Level 8
camera.setPreviewCallbackWithBuffer(new PreviewCallback(){
public void onPreviewFrame(byte[] data,Camera camera){
byte[] rgb=new byte[data.length];
decodeYUV420SP(rgb,data,width,height);
camera.addCallbackBuffer(rgb);
}
});
camera.startPreview();
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.118.20.62
1F:推 LaPass:之前也被这个搞到很鸟.... 到现在也还没搞懂 = = 11/21 21:30