Android:拍照时冻结

时间:2016-04-04 10:19:49

标签: android asynchronous camera freeze

拍照时我没有2秒钟冻结(没有预览),分布如下:

Camera cameraBack = Camera.open(CameraInfo.CAMERA_FACING_BACK); // 0.400 sec
...
cameraBack.startPreview(); // 0.800 sec
...
cameraBack.takePicture(null, null, null, new Camera.PictureCallback() {public void onPictureTaken(byte[] data, Camera camera) {...}}); // 0.900 sec

所以我试着在异步线程中运行它:

new Thread(new Runnable() {
    public void run() {
        ...
    }).start();

但这并没有改变任何事情。实际上,我后来在文档中看到,这些函数已经在一个独立的线程上执行了。

问题是:这种冻结破坏了我的用户体验,更糟糕的是,有时由于CPU开销而不拍照:

Suspending all threads took: 7.659ms

我该如何解决?

0 个答案:

没有答案