2012-03-17 65 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

相关问题