gpt4 book ai didi

android - Camera takePicture 并不总是根据图片大小进行 jpeg 回调

转载 作者:行者123 更新时间:2023-11-30 03:08:56 25 4
gpt4 key购买 nike

我遇到了一个卡住的问题,即 camera.takePicture() jpeg 回调在所需图片尺寸较大时调用的频率较低。例如。它总是在 640x480 下成功,但只适用于 5% 到 40% 的情况,在 3264x2448 分辨率下进行较小的参数调整。相关代码:

public void foo(View view) {
Camera.PictureCallback jpegCallback = new Camera.PictureCallback(){
@Override
public void onPictureTaken(byte[] bytes, Camera camera) {
camera.release();
Toast.makeText(SurvCamActivity.getInstance(), "jpeg callback", Toast.LENGTH_SHORT).show();
}
};
//Gets desired resolution
SpinnerResolution res = getSelectedSpinnerResolution();
Camera camera = getCameraInstance();
try {
Camera.Parameters params = camera.getParameters();
params.setPictureSize(res.width, res.height);
camera.setParameters(params);
camera.setPreviewTexture(new SurfaceTexture(R.layout.fragment_preview));
camera.startPreview();
camera.takePicture(null, null, jpegCallback);
} catch (IOException e) {
e.printStackTrace();
}
}

现在奇怪的是,如果我将断点添加到 camera.takePicture() 并在线程到达那里时简单地恢复执行,它总是调用 jpeg 回调。当我在 camera.takePicture() 之后添加 Thread.sleep(700) 时,它也开始持续执行回调。有任何想法吗?在 Nexus 4 上测试。

最佳答案

jpegCallback.onPictureTaken() 启动之前,您不能再次调用 camera.takePicture(),因此您需要限制 button.onClick()。如果您始终将相机保持在预览模式,您可能可以减少延迟。

关于android - Camera takePicture 并不总是根据图片大小进行 jpeg 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21313488/

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