从previewCallback安卓相机发布错误 [英] android camera release error from PreviewCallback
问题描述
所以,我读了照相机API,但没有找到这个东西。我使用的是相机抢框架和它完美的作品,直到我尝试释放相机。我在电话中的一个序列复制错误:
So I've read over the Camera API and couldn't find anything on this. I'm using the Camera to grab frames and it works perfectly, until I try to release the camera. I replicated the error in one sequence of calls:
camera = Camera.open();
camera.setPreviewDisplay(getHolder());
Parameters params = camera.getParameters();
List<Size> ls = params.getSupportedPreviewSizes();
Size size = ls.get(1);
this.width = size.width;
this.height = size.height;
params.setPreviewSize(size.width, size.height);
camera.setParameters(params);
camera.setDisplayOrientation(90);
camera.setPreviewCallback(this);
camera.startPreview();
camera.stopPreview();
camera.release();
我得到的错误是
03-22 13:31:42.592: E/AndroidRuntime(14152): java.lang.RuntimeException: Method called after release()
03-22 13:31:42.592: E/AndroidRuntime(14152): at android.hardware.Camera.setHasPreviewCallback(Native Method)
03-22 13:31:42.592: E/AndroidRuntime(14152): at android.hardware.Camera.access$600(Camera.java:114)
03-22 13:31:42.592: E/AndroidRuntime(14152): at android.hardware.Camera$EventHandler.handleMessage(Camera.java:545)
03-22 13:31:42.592: E/AndroidRuntime(14152): at android.os.Handler.dispatchMessage(Handler.java:99)
03-22 13:31:42.592: E/AndroidRuntime(14152): at android.os.Looper.loop(Looper.java:130)
03-22 13:31:42.592: E/AndroidRuntime(14152): at android.app.ActivityThread.main(ActivityThread.java:3684)
03-22 13:31:42.592: E/AndroidRuntime(14152): at java.lang.reflect.Method.invokeNative(Native Method)
03-22 13:31:42.592: E/AndroidRuntime(14152): at java.lang.reflect.Method.invoke(Method.java:507)
03-22 13:31:42.592: E/AndroidRuntime(14152): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:845)
03-22 13:31:42.592: E/AndroidRuntime(14152): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:603)
03-22 13:31:42.592: E/AndroidRuntime(14152): at dalvik.system.NativeStart.main(Native Method)
所以,无论是怎么回事是不是在我的功能之一。
如果我注释掉camera.set previewCallback(本);那么这个错误没有出现,但我显然失去了我的回调,这是包括相机在我的应用程序的整点。
So whatever is going on is not in one of my functions. If I comment out the camera.setPreviewCallback(this); then this error does not appear, but I obviously lose my callback, which is the whole point of including the camera in my app.
推荐答案
您必须取消设置preVIEW回调之前 camera.release()
,在 camera.stop preVIEW()
:
You have to unset preview callback before camera.release()
, after camera.stopPreview()
:
camera.setPreviewCallback(null);
否则相机已被释放后,它可能会被调用。
Otherwise it might get called after camera has been released.
这篇关于从previewCallback安卓相机发布错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!