2012-03-17 103 views
8

我試圖訪問android前置攝像頭的原始信號源。默認情況下,前置攝像頭的預覽會水平翻轉,以便用戶可以看到自己,就像看着鏡子一樣 - 這很棒,但不是我所需要的。獲取原始飼料的最佳方式是什麼?有什麼方法來禁用自動翻轉,或者我應該嘗試自己在代碼中翻轉它?我的應用程序需要顯示前置攝像頭的實時反饋,而不是像鏡子一樣翻轉。防止前置攝像頭翻轉

回答

1

來自前置攝像頭的數據與攝像頭一樣,看着你。它的圖像的左側是你的右側。我認爲這就是你想要的?當被放在SurfaceView上時,它會翻轉,所以它按照你的說法行事,但這是一個單獨的裝飾轉換。

至少,這是我見過的每一個設備的工作原理,我很努力地實現了Barcode Scanner/Barcode Scanner+中的前置攝像頭支持。

+0

有道理。我實際上試圖用SurfaceView渲染它 - 我應該怎麼去做呢? – daedalus28 2012-03-17 23:05:21

+0

啊。然後我不知道。我認爲你必須接收圖像數據並將其手動繪製到「視圖」上。或者,也許你必須手工反轉它,因爲它會重新反轉它。我自己從來沒有觸及過這個方面,只是當我單獨監聽數據時,總是讓它在'SurfaceView'上隨意拋棄。 – 2012-03-18 12:51:49

+0

我也想在SurfaceView中渲染它非鏡像。你有沒有找到解決方案? – 2012-07-04 20:25:55

11

如果您想使用前置攝像頭進行條碼掃描,您可以使用TextureView並將轉換矩陣應用到它。紋理更新後,您可以讀取圖像數據並使用它。

參見https://github.com/hadders/camera-reverse

具體地從MainActivity.java

mCamera.setDisplayOrientation(90); 
Matrix matrix = new Matrix(); 
matrix.setScale(-1, 1); 
matrix.postTranslate(width, 0); 
mTextureView.setTransform(matrix); 
+0

從github代碼不起作用。 – CENT1PEDE 2013-11-21 08:30:07

+0

嘿@GreenFox狐狸。我剛剛克隆了repo並從命令行運行'gradle installDebug',並將其安裝到我的Nexus 5上。這會運行。當我啓動應用程序並保留一些文本「ABC」時,它會在屏幕上顯示「ABC」,而不是像預期的那樣正常倒轉回「CBA」。確切的問題是什麼? – Steve 2013-11-27 08:39:01

+0

但是當我用它時,沒有任何工作.. – CENT1PEDE 2013-11-27 11:40:12

相關問題