- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试使用 onPreviewFrame() 回调显示经过过滤的相机预览。
问题是当我删除这一行时: mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
为了隐藏预览,应用程序崩溃了。日志内容如下: 08-19 15:57:51.042: 错误/CameraService(59): registerBuffers 失败,状态为 -38
这是什么意思?这在任何地方都有记录吗?
我正在使用来自 SDK APIDemos 的 CameraPreview:http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/CameraPreview.html
最佳答案
SURFACE_TYPE_PUSH_BUFFERS 为 SurfaceView 生成多个缓冲区。组件在操作系统代码深处锁定(填充数据)和推送(显示数据)这些缓冲区。特别是 OpenMax(相机硬件设备接口(interface))正在使用“图形缓冲区”=“推送缓冲区”来填充数据和显示数据。具体来说,相机硬件可以直接填充推送缓冲区,图形硬件可以直接显示推送缓冲区(它们共享这些缓冲区)。结论:操作系统强制您创建带有推送缓冲区的 SurfaceView。然后它可以使用相机设备的缓冲区。
关于android - SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3525287/
我正在尝试使用 onPreviewFrame() 回调显示经过过滤的相机预览。 问题是当我删除这一行时: mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH
我正在使用 MediaRecorder 捕捉视频。部分代码如下。 surfaceView = (SurfaceView) findViewById(R.id.surface_camera);
我是一名优秀的程序员,十分优秀!