1

zxing actionscript ライブラリを使用して、Flex Mobile アプリ用のバーコード スキャナーを実装しようとしている人が非常に多いと思います。私の問題は、実際のデバイスでカメラを適切に表示するだけで、かなりの時間を費やしていることです。Web カメラを使用してデスクトップでアプリを実行すると、ビデオ フィードが正常に表示されます。以下は、Galaxy Nexusで取得したもので、Nexus 7でも同様です.

ギャラクシーネクサスで

私は主にこの例に取り組んできましたが、他のサイトからの提案も取り入れました: http://www.remotesynthesis.com/post.cfm/adding-a-qr-code-reader-in-flex-on-アンドロイド

すべてがビデオ オブジェクトへの同じ奇抜なフィードを生成します。これを修正するために私に何ができるか知っている人はいますか?

これは、この時点で明確な画像を取得しようとしている現在の形式のコードです (バーコードのジャンクはまだありません)。

スキャナー2.mxml

<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark"
    xmlns:bs="com.expologic.barcodescanner"
    title="Scanner" creationComplete="init(event)">
<fx:Declarations>
    <!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>

<fx:Script>
    <![CDATA[
        import mx.core.UIComponent;

        import com.expologic.barcodescanner.BarcodeScanner;

        private var bs:BarcodeScanner;

        private function init(e:Event):void {

            bs = new BarcodeScanner();
            bs.horizontalCenter = 0;
            bs.verticalCenter = 0;
            bs.height = 480;
            bs.width = 640;

            addElement(bs);

            //To add a target to the center of the screen
            var uic:UIComponent = new UIComponent();
            this.addElement(uic);

            uic.width = uic.height = 275;
            uic.graphics.lineStyle(3,0xFF0000);
            uic.graphics.drawRect(0,0,275,275);

            uic.horizontalCenter = uic.verticalCenter = 0;

        }


    ]]>
</fx:Script>



</s:View>

BarcodeScanner.as

package com.expologic.barcodescanner
    {

        import flash.events.Event;
        import flash.media.Camera;
        import flash.media.Video;

        import spark.core.SpriteVisualElement;

        public class BarcodeScanner extends SpriteVisualElement
        {

            private var _video:Video;

            public function BarcodeScanner()
            {

                this.height = 480;
                this.width = 640;

                addEventListener(Event.ADDED_TO_STAGE, _addToStage);

            }

            private function _addToStage(e:Event):void {
                _setupCamera();
            }


            private function _setupCamera():void
            {

                if(!_video)
                {
                    _video = new Video(640, 480);
                    addChild(_video);
                }

                if(Camera.isSupported)
                {
                    var cam:Camera = Camera.getCamera();
                    cam.setQuality(0, 100);
                    cam.setMode(640, 480, 30, false);

                    _video.attachCamera(cam);
                }
            }

        }
    }
4

2 に答える 2

3

app.xmlに設定<renderMode>direct</renderMode>してみてください。これで問題が解決し、Galaxy Nexus も使用しています。よろしくジョコ

于 2013-01-25T20:30:14.133 に答える
1

正確な問題はわかりませんが、以下のリンクに記載されている権限を追加してみてください:

2 番目の QR コードを読み取る際の zxing バーコード スキャナーのオートフォーカスの問題

于 2013-01-22T10:04:43.380 に答える