简体   繁体   English

如何在不保存的情况下在 Android 工作室中以 bitmap 或 ByteBuffer 的形式访问流式摄像机视频?(Java)

[英]How can I access the streaming camera video as bitmap or ByteBuffer in Android studio without saving it?(Java)

I am building an app in Android studio in Java where I want to access realtime video from camera without saving it and get it as a ByteBuffer.我正在 Java 的 Android 工作室中构建一个应用程序,我想从相机访问实时视频而不保存它并将其作为 ByteBuffer 获取。 Any help will be appreciated.任何帮助将不胜感激。

It Depends on the API you use (CameraX, Camera2).它取决于您使用的 API(CameraX、Camera2)。 If you use Camera2 API the general flow would be:如果您使用 Camera2 API,一般流程为:

  1. Open a Camera:打开相机:
val manager = getSystemService(CAMERA_SERVICE) as CameraManager
manager.openCamera(cameraId, cameraStateCallback, cameraHandler)
  1. Wait for the camera to open:等待相机打开:
private val cameraStateCallback: CameraDevice.StateCallback = object : CameraDevice.StateCallback() {
    override fun onOpened(cameraDevice: CameraDevice) {
        //Start a capture session
    }

    override fun onDisconnected(cameraDevice: CameraDevice) {
        cameraOpenCloseLock.release()
        cameraDevice.close()
    }

    override fun onError(cameraDevice: CameraDevice, error: Int) {
        cameraOpenCloseLock.release()
        cameraDevice.close()
    }
}
  1. Then start a capture session, and using ImageReader to receive images.然后启动一个捕获session,并使用ImageReader接收图像。

You can check this project for a small basic working example of the entire flow.您可以查看此项目以获取整个流程的小型基本工作示例。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM