要在Android应用程序中实现IP相机X和Camera2功能,需要遵循以下步骤:
implementation ‘androidx.camera:camera-core:1.0.0’ implementation ‘androidx.camera:camera-camera2:1.0.0’ implementation ‘androidx.camera:camera-lifecycle:1.0.0’ implementation ‘androidx.camera:camera-view:1.0.0-alpha20’ implementation ‘com.github.pedroSG94.mjpegviewer:mjpeg-viewer:1.7.5’
val cameraProviderFuture = ProcessCameraProvider.getInstance(context) cameraProviderFuture.addListener(Runnable { val cameraProvider: ProcessCameraProvider = cameraProviderFuture.get()
val preview = Preview.Builder().build()
val imageAnalysis = ImageAnalysis.Builder()
.setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST)
.build()
val cameraSelector = CameraSelector.Builder()
.requireLensFacing(CameraSelector.LENS_FACING_BACK)
.build()
val imageReader = ImageReader.newInstance(640, 480, ImageFormat.YUV_420_888, 2)
val camera = cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview, imageAnalysis)
camera.cameraControl.enableTorch(true)
preview.setSurfaceProvider(viewFinder.createSurfaceProvider(camera.cameraInfo))
}, ContextCompat.getMainExecutor(context))
val viewer = Mjpeg.newInstance() viewer.setDisplayMode(MjpegView.MODE_FIT_WIDTH) viewer.setInputStream(URL("http://192.168.0.1/mjpeg").openStream()) viewer.showFps(false) viewer.setResolution(640, 480)
viewer.setAdjustHeight(true) viewer.adjustHeightToWidthRatio(0.70f)
cameraContainer.addView(viewer) viewer.start()