java - 安卓相机: Save preview frames to buffer?

标签 java android camera android-camera

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

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

最佳答案

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

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

    };

关于java - 安卓相机: Save preview frames to buffer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17851141/

相关文章:

netbeans - 64位Win 7平台上的JavaFx应用程序

android - 在android中为Json响应创建pojo类有什么好处?

android - 从android中的相机 Intent 获取uri

unity3d - 显示 1 无相机渲染

java - FragmentManager 中的 NullPointerException

camera - flutter 相机出现拉伸(stretch)

java - 扩展 TreeMap 以仅采用 Integer -> Integer 映射?

处理数字的java逻辑问题

java - 所有子类(泛型?)的一种构建器方法实现

Android Jetpack 撰写 : Listen to user's keyboard input not working with Enter key