【发布时间】:2014-08-22 16:20:00
【问题描述】:
我有一台搭载 android 4.4.2 的 Sony xperia Z,其中有一个可以拍照的应用程序。
它有一个 TextureView 用于预览,所以我有一句话说
camera.setPreviewTexture(preview_texture_view.getSurfaceTexture());
然后...
camera.startPreview();
该应用现在会显示相机所见内容的连续预览。然后我可以按下一个按钮并执行以下操作:
camera.takePicture(mShutterCallback, mPictureCallbackRaw, this);
拍摄并保存照片。此外,预览仍然有效(这正是我想要的)。
到目前为止一切顺利。但是,当我尝试在运行 Android 4.3 的原型设备上运行完全相同的应用程序时,就会出现问题。我看到预览没问题,当我按下按钮时,照片被拍摄并保存好。但是预览现在被冻结了。程序没有崩溃。 takePicture() 无异常返回。
我的怀疑是,在不同版本的 Android 中,可能定义了 takePicture() 在完成后以某种方式重置(?)相机的行为 - 也许这是 4.3 和 4.4.1 之间进行的一些设计更改,或者不同的硬件可能会有所不同。
有没有人遇到过类似的问题?有的话是怎么解决的?
编辑: 我试着把 camera.startPreview();在我的 PictureCallback 的 onPictureTaken 方法中,但它立即崩溃:RuntimException startPreview failed.
【问题讨论】:
-
在 Xperia Z3 上遇到完全相同的问题,在 Xperia Z2、Xperia Z1、Xperia ZR 和 Xperia T2 Ultra 上运行良好...预览被冻结,但即使在重新开始预览,刚刚冻结
-
在使用这个问题的答案后得到了一些修复,虽然非常烦人:stackoverflow.com/questions/8257318/…
标签: android