2013-05-12 87 views
2

我试图使用前置摄像头,在Android平板电脑上zxing条码扫描器 - 使它工作,我做了以下修改:斑马线前摄像头镜像问题

1)GingerbreadOpenCameraInterface.java

// if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_BACK) { 
     if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) { 

2)CameraManager.java

// return new PlanarYUVLuminanceSource(data, width, height, rect.left, rect.top, 
//          rect.width(), rect.height(), false); //changed false to true below 
     return new PlanarYUVLuminanceSource(data, width, height, rect.left, rect.top, 
             rect.width(), rect.height(), true); 

3)CameraConfigurationManager.java:

camera.setDisplayOrientation(180); // added to rotate the image by 180 degrees as it ws already flipped once had changed to frontcamera 

4)同样在AndroidManifest.xml:

<uses-feature android:name="android.hardware.camera" android:required="false"/> 
    <uses-feature android:name="android.hardware.camera.front" android:required="false"/> 
    <uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/> 
    <uses-feature android:name="android.hardware.camera.flash" android:required="false"/> 
    <uses-feature android:name="android.hardware.screen.landscape"/> 
    <uses-feature android:name="android.hardware.wifi" android:required="false"/> 
    <uses-feature android:name="android.hardware.touchscreen" android:required="false"/> 

它扫描正常,但目前它扫描并显示预览图像的最后几秒钟,它示出一个倒置图像。这里是链接到快照http://i.imgur.com/gIvXy52.png

因此,我有以下问题,如果有人能帮助:

1)如何改变最终预览倒象正常

2)是否有什么办法可以去除它显示拍摄图像的最后几秒的部分。

+0

让您在前置摄像头扫描QR码吗?你能帮我解决吗?我在那里挣扎。 – 2013-11-20 05:23:45

回答

0

您实际上不想从前置摄像头翻转图像数据。它以相机看到它的方式呈现给应用程序。当Android将图像转换为SurfaceView时,它将反映它,因为它更直观。但是你不需要,也不应该在代码中镜像它。如果我记得正确,那么从某时某个设备不能以这种方式工作的时候,该标志就存在。

它看起来像你正在整合像条码扫描器Intent虽然?不,你不能控制这方面,因为它正确地显示图像!那么这些清单条目都不需要。

如果这是所有嵌入代码,我不明白为什么你会触发响应Intent的路径,因为这就是你要显示的内容。这引发了进一步的担忧:您是否正在编写一个响应我们意图的应用程序?这很糟糕,它会影响我们的应用程序。你在克隆我们的用户界面吗?这不符合开源许可证。

真正的最好的事情是从编写自己的用户界面开始,只重用你知道你需要的部分并知道他们是如何工作的。那么你会避免很多这样的混乱。

+0

谢谢肖恩从答案..但我确实需要了解什么是你上面提到的国旗。也是我很抱歉,但我不明白意图的概念(任何文档将是真正有益的)..如果可能的话有没有什么办法可以完全删除部分,它显示图像的快照几秒后,它解码了一些东西。此外,我不是想克隆UI,我尊重开源概念,并真正感谢所做的辛勤工作由整个Zxing队。 – UberNeo 2013-05-12 22:26:42

+0

该标志是您在上面更改的布尔参数。屏幕快照显示您通过Intent调用条形码扫描仪。否则,您正在重新使用该UI屏幕。这是你的应用程序...你不知道?这通常发生在人们复制和粘贴我们的应用程序时,我不得不劝阻它,因为它会让您的应用程序声明干扰我们的清单条目。您也没有被授予用户界面的商标权。我会从右脚开始。如果您不能使用我们的Intent编写自己的应用程序。 – 2013-05-12 23:13:19

+0

我只是想学习如何使用一个zxing库创建使用https://github.com/phonegap/phonegap-plugins/tree/master/Android/BarcodeScanner条码扫描android应用程序..使用此与许可证是一个问题..我的意图是真正开始右脚,做正确的事情,因为我真的很欣赏Zxing团队的辛勤工作。所以,无论如何,我可以使用嵌入到我的应用程序中的条码扫描器提及MIT上述链接附带的许可证,我已经提到..请纠正我如果我在这里丢失了一些东西.. – UberNeo 2013-05-12 23:53:38