简体   繁体   English

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

[英]Android Camera: Save preview frames to buffer?

I would like to use onPreviewFrame to save a predefined number of frames into buffer and later save them as png's. 我想使用onPreviewFrame将预定义数量的帧保存到缓冲区中,然后将它们保存为png。

There are many examples on how to do the whole capturing and saving in one go, but I need to do just the buffering of, let's say 3 consecutive frames first. 有很多关于如何一次完成整个捕获和保存的例子,但我需要做的只是缓冲,比如说先连续3帧。 Perhaps I could create an array of byte objects? 也许我可以创建一个字节对象数组? I am new to java so any suggestions are welcome. 我是java的新手,所以欢迎任何建议。

in case of out of memory, you have to limit your array size 如果内存不足,则必须限制阵列大小

    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);
        }

    };

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM