相关疑难解决方法(0)

超出最小未加标缓冲区计数

我使用SurfaceTexture以下列方式获取预览帧.

首先,我设置了一个预览纹理:

camera.setPreviewTexture(new SurfaceTexture(0));
Run Code Online (Sandbox Code Playgroud)

然后,在开始预览之前,然后每次onPreviewFrame调用,我设置回调缓冲区,如下所示:

camera.addCallbackBuffer(buffer);
camera.setPreviewCallbackWithBuffer(this);
Run Code Online (Sandbox Code Playgroud)

有用.有时候,我会拍照camera.takePicture(null, null, callback),这会导致调用onPictureTaken成功.图像已保存.由于我想在拍摄照片后重新开始预览,我会执行以下操作:

try
{
    camera.setPreviewTexture(new SurfaceTexture(0));
    camera.startPreview();
}
...
Run Code Online (Sandbox Code Playgroud)

预览重新开始,一切似乎都很好.但是在我的Logcat中报告了以下错误,似乎在重新启动预览之后:

E/BufferQueue? [unnamed-5682-5] dequeueBuffer: min undequeued buffer count (2) exceeded (dequeued=5 undequeudCount=1)
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?我应该在某个时候释放旧纹理吗?

配置:三星Galaxy S4,三星Galaxy S5,Nexus 5,在Android KitKat上运行.

编辑:我不确定它是否链接,但过了一段时间,我的应用程序不再拍照,以下消息在我的Logcat中不断出现:

E/LocSvc_api_v02(  318): I/---> locClientSendReq line 2332         QMI_LOC_INJECT_SENSOR_DATA_REQ_V02
E/gsiff_dmn(  318): I/loc_api_resp_ind_callback: Received LocAPI Resp ind = 77
E/LocSvc_api_v02(  318): D/loc_sync_process_ind:172]: loc_sync_array not in use 
E/LocSvc_utils_q(  318): D/msg_q_rcv: Received message 0xB899D940 rv = 0
E/gsiff_dmn(  318): I/gsiff_data_task: Handling …
Run Code Online (Sandbox Code Playgroud)

android android-camera

11
推荐指数
1
解决办法
1万
查看次数

标签 统计

android ×1

android-camera ×1