我在专为 Google Pixel 3 XL 设计的相机应用中使用了 camera2 api。该设备有两个前置摄像头(广角和普通)。多亏了多摄像头功能,我可以同时访问两个物理摄像头设备,我的应用程序具有在这两个摄像头之间切换的功能。在我最近升级到 Android 10 之前,我可以准确地看到两个不同的结果,但现在我的广角捕捉帧与普通相机具有几乎相同的 FOV(视野)。因此,Android 9 广角捕获结果上的相同代码、相同 apk 是宽的,正如预期的那样,并且在 Andoird 10 升级之后 - 广角和普通相机显示几乎相同的 FOV。
这是一个代码片段,用于演示我如何初始化两个摄像头并捕获预览:
主活动.kt
private val surfaceReadyCallback = object: SurfaceHolder.Callback {
override fun surfaceChanged(p0: SurfaceHolder?, p1: Int, p2: Int, p3: Int) { }
override fun surfaceDestroyed(p0: SurfaceHolder?) { }
override fun surfaceCreated(p0: SurfaceHolder?) {
// Get the two output targets from the activity / fragment
val surface1 = surfaceView1.holder.surface
val surface2 = surfaceView2.holder.surface
val dualCamera = findShortLongCameraPair(cameraManager)!!
val outputTargets = …Run Code Online (Sandbox Code Playgroud)