[英]What is the Camera2 API Equivalent of setDisplayOrientation()?
使用android.hardware.Camera
,為了使攝像機輸出適當地跟蹤設備移動,我們需要將OrientationEventListener
到Camera
上的setDisplayOrientation()
方法。 這樣,當用戶扭轉設備時,我們可以保持相機預覽中的“向上”與現實世界中的“向上”同步。 對於圍繞Y軸旋轉設備(即,從橫向翻轉到反向橫向或向后),尤其如此。
對於大多數方向更改, android.hardware.camera2
API似乎“正常工作”。 但是,對於Y軸旋轉(橫向 - >反向橫向或反向橫向),相機預覽會被反轉。
在Camera
為Camera2 API調用setDisplayOrientation()
相當於什么,所以我們可以處理這種情況?
正如您所注意到的那樣,這應該在camera2 API上為SurfaceView
“正常工作”。
因此,沒有setDisplayOrientation()
等價物。
我們之前沒有聽說過這個問題,所以有幾個問題:
使用此CaptureRequest JPEG_ORIENTATION設置顯示方向
captureBuilder.set(CaptureRequest.JPEG_ORIENTATION, 90)
使用下面的公式來獲取設備旋轉。
private int getOrientation(int rotation) {
return (ORIENTATIONS.get(rotation) + mSensorOrientation + 270) % 360;
}
SensorOrientation是從中分配的字段
characteristics.get(CameraCharacteristics.SENSOR_ORIENTATION)
谷歌工程師建議的解決方案:yaraki
https://github.com/googlesamples/android-Camera2Basic/issues/24
空無一人。
如果交換顯示方向與傳感器方向相比,它不會“正常工作”(在大多數設備上都是縱向模式),因為您必須為預覽表面設置寬高比<1,即相機2無法映射到適合的輸出尺寸。 解:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.