Android Camera:将预览帧保存到缓冲区?

时间:2013-07-25 07:00:36

标签: java android camera android-camera

我想使用onPreviewFrame将预定义数量的帧保存到缓冲区中,然后将它们保存为png。

有很多关于如何一次完成整个捕获和保存的例子,但我需要做的只是缓冲,比如说先连续3帧。也许我可以创建一个字节对象数组?我是java的新手,所以欢迎任何建议。

1 个答案:

答案 0 :(得分:2)

如果内存不足,则必须限制数组大小

    private ArrayList<byte[]> queue = new ArrayList<byte[]>(3);
    private Camera.PreviewCallback mPreviewCallback = new Camera.PreviewCallback() {

        @Override
        public void onPreviewFrame(byte[] data, Camera camera) {        
            // TODO Auto-generated method stub

            if (queue.size() == 3) {
                queue.remove(0);
            }
            queue.add(data);
        }

    };