Flex Используйте камеру без cameraUI - PullRequest
2 голосов
/ 19 января 2012

Еще один вопрос о приложении, которое я делаю. Поэтому, когда пользователь регистрируется, он должен сделать снимок. Я хочу сделать это без использования CameraUI. Я следовал своего рода учебнику, но приложение не запускалось. Я не получаю ошибки, но камера не показывает. Вот что я сделал:

    <?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:mx="library://ns.adobe.com/flex/mx"
        activate="view1_activateHandler(event)"
        title="Camera Test">
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>


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

            import spark.components.Image;
            import spark.components.VideoDisplay;
            import spark.components.ViewNavigator;

            private var cam:Camera;
            private var video:Video;
            private var uic:UIComponent;

            protected function cameraButton_clickHandler(event:MouseEvent):void
            {
                if(!cam){
                    trace("whut");
                    cameragroup.removeAllElements();
                    this.cam=Camera.getCamera();
                    cam.setQuality(0,100);

                    cam.setMode(cameragroup.width, cameragroup.height, 30, false);
                    if(cam){
                        trace("camera added");
                        this.video=new Video(cameragroup.width, cameragroup.height);

                        video.attachCamera(cam);

                        this.uic=new UIComponent();
                        uic.addChild(video);

                        var m:Matrix=new Matrix();
                        m.rotate(Math.PI/2);
                        video.transform.matrix=m;

                        var m2:Matrix = new Matrix();
                        m2.translate((video.width+cameragroup.width/4)-this.frame.x, 5);
                        uic.transform.matrix=m2;

                        cameragroup.addElement(uic);
                        cameraButton.label="shoot";
                    }
                }
            }

            protected function view1_activateHandler(event:Event):void
            {
                this.cameraButton.label="shoot";
            }

        ]]>
    </fx:Script>

    <s:VGroup width="100%" height="100%" horizontalAlign="center" paddingBottom="30" paddingLeft="10" paddingRight="10" paddingTop="30">
        <s:Group id="frame" width="100%" height="100%">
            <s:Rect width="100%" height="100%">
                <s:fill>
                    <s:SolidColor color="0x000000" alpha="0.2"/>
                </s:fill>
            </s:Rect>
            <s:Group id="cameragroup" width="210" height="220"/>
        </s:Group>

        <s:Spacer height="100%"/>
        <s:HGroup width="100%" horizontalAlign="center">
            <s:Button id="cameraButton" width="50%" height="80" label="start" click="cameraButton_clickHandler(event)"/>
        </s:HGroup>
    </s:VGroup>
</s:View>

Это полный файл .mxml. И я пропускал код построчно, но ничего плохого не нашел.

Grtz

1 Ответ

0 голосов
/ 24 января 2012

В вашем Application-app.xml

Убедитесь, что имеется следующее.

<uses-permission android:name="string" />

в нашем случае:

<uses-permission android:name="android.permission.CAMERA"/>

Это объясняется более подробно здесь: http://developer.android.com/guide/topics/manifest/uses-permission-element.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...