如何以编程方式访问新版本 Android OS 上的相机设备?

How to access a camera-device on the new version of Android OS programmatically?

因为库 'android.hardware.Camera' 在当前版本的 Android OS 上已被弃用,旧用法已被禁用。 而且我不知道如何以编程方式访问当前版本 Android 上的相机实例。

当前图书馆是'android.hardware.camera2.*'。

有人知道怎么做吗? 谢谢

这是来自 Google 的示例:https://github.com/googlesamples/android-Camera2Basic/blob/master/Application/src/main/java/com/example/android/camera2basic/Camera2BasicFragment.java

我还制作了一个库来简单地使用 Camera2,你可能想试一试!

https://github.com/omaflak/Android-Camera2-Library

最后是这样的:

EZCam cam = new EZCam(this);
cam.selectCamera(EZCam.FRONT); // or EZCam.BACK
cam.setStopPreviewOnPicture(true);

cam.setEZCamCallback(new EZCam.EZCamCallback() {
    @Override
    public void onPicture(ImageReader reader) {
        // picture available
        cam.saveImage(reader, "image.jpeg"); // save to internal storage
    }

    @Override
    public void onError(String message) {
        // error occurred
    }
});

TextureView textureView = (TextureView)findViewById(R.id.textureView);
textureView.setSurfaceTextureListener(new TextureView.SurfaceTextureListener() {
    @Override
    public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture, int i, int i1) {
        cam.startPreview(surfaceTexture, i, i1);
    }
});

// take picture
cam.takePicture();

// stop preview
cam.stopPreview();

// resume preview
cam.resumePreview();

要安装库,请添加 gradle 依赖项:

compile 'me.aflak.libraries:ezcam:1.0'

希望对您有所帮助!