關於Camera2 與 Camera1 成像結果旋轉角度不同
f9021003 opened this issue · comments
@ChillingVan 你好
我在Camera2 與 Camera1 成相旋轉角度問題 有一個疑問
首先 先稍微提一下一個觀念:
android dev doc中, 有提到camera2 api中 有SENSOR_ORIENTATION , 而這個值和手機設備的旋轉角度不一定會一致 (透過 getResources().getConfiguration().orientation取得)
如這篇文章所提到的: Android Camera2 API 錄影開發歷程
所以大部分的手機 , camera和設備角度, 都是 有 90度 or 270度 的差異
回到我到問題, (以手機 直立(portrait) 的情況下為例)
-
TextureCameraActivity.java範例中(此範例是用 caemra1 api) , 看到的結果如上述一致: 會呈現轉90(or 270)的結果 (我知道可以可透過canvas.rotate() 來進行校正 )
-
MultiTextureActivity.java範例中((此範例是用 caemra2 api), 看到的結果, 卻是已經與設備相同方向, 且還需透過setIsFlippedVertically() ,影像就可以正確
很明顯 GLSurfaceTextureProducerView.java 在 camera1 & camera2 api 時, 結果會有不同 : 在camera2 api時 ,android-openGL-canvas 底層會自動將影像轉90/270度, 並Flip.
所以想請問作者: 是否能夠讓GLSurfaceTextureProducerView 與camera2 api搭配使用時,能夠不要做任何影像旋轉呢??
感謝
这个库内部应该没做任何操作的,用flip的也只是例子canvasglsample的代码而已。MultiVideoTexture里的操作也只是一个例子。
关于Camera,推荐使用 https://github.com/natario1/CameraView 的CameraEngine部分,有需要的话再搭配这个库的绘制部分就可以了。因为这个库只是为渲染而用的,所以不会对Camera做操作的