【问题标题】:Prevent flipping of the front facing camera防止前置摄像头翻转
【发布时间】:2012-03-17 22:30:42
【问题描述】:

我正在尝试访问 android 前置摄像头的原始信息。默认情况下,前置摄像头的预览是水平翻转的,因此用户可以像照镜子一样看到自己——这很好,但不是我需要的。获取原始饲料的最佳方式是什么?有什么方法可以禁用自动翻转,还是我应该自己尝试在代码中翻转它?我的应用程序需要显示前置摄像头的实时馈送,而不会像镜子一样翻转。

【问题讨论】:

    标签: java android camera


    【解决方案1】:

    如果您想使用前置摄像头进行条码扫描,您可以使用 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);
    

    【讨论】:

    • 嘿@GreenFox Fox。我刚刚克隆了存储库并从命令行运行“gradle installDebug”并安装到我的 Nexus 5 上。这运行。当我启动应用程序并按住一些文本“ABC”时,它会在屏幕上显示“ABC”,而不是预期的正常倒置的“CBA”。究竟是什么问题?
    • 嘿@GreenFox。 “没有用”是什么意思?你应该看到一个图像。你必须有一部带前置摄像头的手机,因为这个帖子是关于前置摄像头的。
    • 下载的项目中没有任何类或任何内容。
    • 嘿@GreenFox。只有一类;一个活动。这里:github.com/hadders/camera-reverse/blob/master/CameraReverse/src/…。我建议你阅读 AndroidStudio。
    • 非常感谢您的正确答案!切换到后置摄像头时一定要检查使用的是哪个摄像头并设置Transform(null)。
    【解决方案2】:

    来自前置摄像头的数据就像摄像头看到的那样,看着你。其图像的左侧是您的右侧。我想这就是你想要的吗?当放到 SurfaceView 上时,它会被翻转,所以它会按照你说的那样工作,但这是一个单独的外观转换。

    至少,这是我见过的每台设备的工作原理,我一直在努力研究如何在Barcode Scanner / Barcode Scanner+ 中实现前置摄像头支持。

    【讨论】:

    • 这是有道理的。我实际上是在尝试用 SurfaceView 渲染它——我应该怎么做呢?
    • 啊。那我就不知道了。我认为您必须接收图像数据并将其手动绘制到View 上。或者,也许您必须手动反转它,因为它只会重新反转它。我自己从来没有接触过这方面,只是在我单独收听数据的同时,总是让它随心所欲地向SurfaceView投掷任何东西。
    • 我也想在 SurfaceView 中呈现非镜像。你找到解决方案了吗?
    • @SeanOwen 你找到解决方案来翻转表面视图以查看非镜像预览...我正在为解决方案而苦苦挣扎
    猜你喜欢
    • 1970-01-01
    • 2012-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-25
    • 1970-01-01
    相关资源
    最近更新 更多