gpt4 book ai didi

android - 使用没有 surfaceview 或 textureview 的相机

转载 作者:可可西里 更新时间:2023-11-01 18:46:17 29 4
gpt4 key购买 nike

我一直在尝试找出是否有一种方法可以在不定义表面 View 或纹理 View 的情况下使用相机拍摄视频/图片。我找到了这个链接: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:

是否可以在 native 代码中执行?使用 OpenCV 在没有 GUI 元素(surfaceview/textureview)的情况下捕获视频/使用相机?我查看了这个链接:http://docs.opencv.org/trunk/doc/tutorials/introduction/android_binary_package/dev_with_OCV_on_Android.html#application-development-with-static-initialization .但是,它们还显示了示例代码,其中包含在主布局 xml 文件中定义的一些相机 View 元素。

最佳答案

我可以通过如下定义 SurfaceTexture 对象来做到这一点:

SurfaceTexture surfaceTexture = new SurfaceTexture(10);
<camera object>.setPreviewTexture(surfaceTexture);

在此,我不需要在应用程序中定义 GUI 元素。

关于android - 使用没有 surfaceview 或 textureview 的相机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22462360/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com