2015-02-24 78 views
0

我正在使用TextureView從相機中顯示我的實時流。我寫了一個功能,通過翻轉動畫在前後相機之間切換。當我通過從90度到180度的動畫翻轉紋理視圖時。它顯示從左到右的直播流,而不是從左到右。這種行爲是可以理解的,因爲左上角在翻轉動畫上變得正確。如何在動畫之後更改實時流。我嘗試了很多,但找不到任何解決方案。任何建議或解決方案,請解決這個問題。相機翻轉動畫使用TextureView

+0

作爲一個建議,你可以將你的視圖翻轉到360度而不是180度。這樣你就可以實現你的動畫,並且你的相機不會水平翻轉。 – 2015-02-24 12:31:52

+0

謝謝@薩爾曼·穆罕默德·阿尤布,但360並不好看。它旋轉了整個視野。 – user1154390 2015-02-24 12:36:48

+0

請檢查答案,謝謝。 – 2015-02-24 12:45:40

回答

0

您可以在紋理視圖上應用轉換矩陣以水平翻轉相機。

您需要onSurfaceTextureAvailable(..)回調申請這一轉變:

public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture, int width, int height) 
{ 
//If you are in portrait mode. 
//mCamera.setDisplayOrientation(90); 

//If you want to flip only front camera. 
if(YOUR_FRONT_CAMERA_FLAG) 
{ 
    Matrix matrix = new Matrix(); 
    matrix.setScale(-1, 1); 
    matrix.postTranslate(width, 0); 
    mTextureView.setTransform(matrix); 
} 
} 

我希望這能解決你的問題。

+0

我已經試過這個解決方案,但它沒有工作。前置攝像頭工作正常這個問題發生在後置攝像頭。 – user1154390 2015-02-24 12:56:15

+0

您是否正在應用沒有任何標誌的轉換,我的意思是您在後置和前置攝像頭上應用轉換? – 2015-02-24 12:58:30

+0

當我加載紋理視圖它拿起前攝像頭,所以我不需要setTransform。點擊它翻轉並拿起後面的相機。我只在背部相機上使用變形。 – user1154390 2015-02-24 13:06:55