0

我正在使用 TextureView 显示来自相机的实时流。我写了一个通过翻转动画在前后摄像头之间切换的函数。当我通过动画将 Textureview 从 90 度翻转到 180 度时。它从右到左而不是从左到右显示实时流。这种行为是可以理解的,因为左角在翻转动画中变为右角。动画后如何更改直播。我已经尝试了很多,但找不到任何解决方案。请提供任何解决此问题的建议或解决方案。

4

1 回答 1

1

您可以在纹理视图上应用变换矩阵来水平翻转相机。

您需要在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);
}
}

我希望这能解决你的问题。

于 2015-02-24T12:45:20.127 回答