使用无表面视图的Android摄像头

使用无表面视图的Android摄像头,android,Android,我在安卓上开发,我想用相机做一些事情(处理像素值),但就在背景中,没有曲面视图可以吗?只需使用缓冲区读取像素值并进行处理。 感谢所有能帮助我的人我一直在寻找答案。我在那里找到的,为了方便复制到这里 基本上,我们只需创建一个虚拟的SurfaceView(它甚至可以在服务内部工作),并将其用于相机功能 SurfaceView view = new SurfaceView(this); c.setPreviewDisplay(view.getHolder()); c.startPreview();

我在安卓上开发,我想用相机做一些事情(处理像素值),但就在背景中,没有曲面视图可以吗?只需使用缓冲区读取像素值并进行处理。
感谢所有能帮助我的人

我一直在寻找答案。我在那里找到的,为了方便复制到这里

基本上,我们只需创建一个虚拟的SurfaceView(它甚至可以在服务内部工作),并将其用于相机功能

SurfaceView view = new SurfaceView(this);
c.setPreviewDisplay(view.getHolder());
c.startPreview();
c.takePicture(shutterCallback, rawPictureCallback, jpegPictureCallback);
从API级别11开始,添加了。有了它,就不再需要SurfaceView了。我用我的三星Galaxy S3 Neo测试了以下代码

mCamera = Camera.open();
try {
    mCamera.setPreviewTexture(new SurfaceTexture(10));
} catch (IOException e1) {
    Log.e(Version.APP_ID, e1.getMessage());
}

Parameters params = mCamera.getParameters();
params.setPreviewSize(640, 480);
params.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
params.setPictureFormat(ImageFormat.JPEG);
mCamera.setParameters(params);
mCamera.startPreview();
mCamera.takePicture(null, null, null, new PictureCallback() {
    @Override
    public void onPictureTaken(byte[] data, Camera camera) {
        Log.i(Version.APP_ID, "picture-taken");
    }
});

这适用于哪些设备?我测试过的所有使用此代码的设备都会导致“E/CameraHAL(132):配置旋转时出错”测试:Galaxy i5800(2.2)、HTC Wildfire(2.1?)-这是很久以前的事了:)我做了更多的研究,显然三星对这一点非常坚持,我的测试设备都是三星的…它肯定还在三星Galaxy i5800上工作-刚刚测试了一个特殊用途的应用程序,我不得不使用这个功能。哦,那太酷了。我读到的笔记是,三星通常是症结所在。我的Galaxy Nexus无法处理它。Android Segmentation ftl.
10
在新的SurfaceTexture(10)中是什么?我们能用任何号码吗?
10
特别吗?您以前是否像文档中的命令那样生成了具有该ID的纹理?这是否比使用
SurfaceView
更好?