【发布时间】:2014-04-23 03:07:24
【问题描述】:
我一直在试图弄清楚是否有一种方法可以使用相机拍摄视频/图片而不定义表面视图或纹理视图。我找到了这个链接:Use Android Camera without surface View
我在我的nexus 平板电脑上使用了textureview 这个技巧,但没有运气!此外,http://handycodeworks.com/?p=19 表示这种方法不适用于所有设备。
有没有人知道是否有办法做到这一点?还是它只是android框架根本不支持的东西,GUI必须在布局中有一些表面/纹理元素?那么唯一的选择就是根据应用要求操纵布局,使其在屏幕上不可见。
编辑 1: 正如上面链接http://handycodeworks.com/?p=19中解释的那样,我尝试了以下代码:
public class CameraCapture {
// I pass the getApplicationContext() from the main activity.
public void startCameraCapture(Context contx) {
SurfaceView sv = new SurfaceView(contx);
mCamera = Camera.open();
mCamera.setPreviewDisplay(sv.getHolder());
mCamera.setPreviewCallback(new PreviewCallback() {
@Override
public void onPreviewFrame(byte[] data, Camera camera) {
Log.v("TAG", "on preview frame called");
}
Thread.sleep(1000);
mCamera.startPreview();
}
但是,onPreviewFrame() 从未调用过。我错过了什么吗?
编辑 2:
是否可以在本机代码中执行?使用 OpenCV 捕获视频/使用没有 GUI 元素(表面视图/纹理视图)的相机?我查看了这个链接:http://docs.opencv.org/trunk/doc/tutorials/introduction/android_binary_package/dev_with_OCV_on_Android.html#application-development-with-static-initialization。但是,它们还显示了示例代码,其中包含在主布局 xml 文件中定义的一些相机视图元素。
【问题讨论】:
标签: android android-layout opencv android-intent android-camera