gpt4 book ai didi

android - 捕获图像后调用 StartPreview() 的最佳方法是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:38:26 26 4
gpt4 key购买 nike

调用 Camera.takePicture() 后,我的预览将停止更新,如文档中所述。检测图像捕获过程完成并调用 startPreview() 以使其再次开始更新的最佳方法是什么?

根据文档,调用不能放在传递给 takePicture 的任何回调中,因为它们应该在我调用它之前全部返回。

我目前最好的猜测是创建一个 Handler 并从 JPEG 回调(或返回最后定义的回调)向其发布一个延迟的 Runnable。

最佳答案

由于 PictureCallback 无论如何都是在单独的线程中启动的(它不会锁定 UI),因此您不需要使用 AsyncTask 来调用捕获。

有两种方法可以做您想做的事情,最简单的方法如下:

mCamera.startPreview(); //preview has to be started before you can take a picture
mCamera.takePicture(null, null, mPictureCallback); //take a picture

private PictureCallback mPictureCallback = new PictureCallback() {
@Override
public void onPictureTaken(byte[] data, Camera camera) {
camera.startPreview(); //once your camera has successfully finished
//its capture it's safe to restart the preview
... //anything else you want to do to process that image
}
}

第二种是使用匿名函数,例如:

mCamera.takePicture(null, null, new PictureCallback(){
...
});

两者都有各自的用途,具体取决于您的需要。

关于android - 捕获图像后调用 StartPreview() 的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9116646/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com