Связывание веб-камеры в гибком приложении - PullRequest
0 голосов
/ 23 сентября 2011

У меня очень странная проблема при подключении веб-камеры. Xperience: ошибка

ArgumentError: Ошибка # 2126: объект NetConnection должен быть подключен.на flash.net::NetStream/ctor () на flash.net::NetStream()

Ниже приведен мой код в main.mxml

 <fx:Script>
   <![CDATA[
       import flash.media.Camera;
       import flash.media.Video;
       import flash.net.NetConnection;
       import mx.core.UIComponent;
       import com.kahaf.plutay.* ;    

       private var inVideo:Video;
       private var outVideo:Video;
       private var inVideoWrapper:UIComponent;
       private var camera:Camera;
       private var mic:Microphone;
       private var inStream:NetStream;
       private var outStream:NetStream;

       private function defaultVideoMode(): void
       {
          VideoPanel.width = 726;
           VideoPanel.height = 494;
           inVideo.width = 726;
           inVideo.height = 494;
       }

       private function showInComingVideo():void
       {
           inVideo = new Video(VideoPanel.width,VideoPanel.height);
           inVideo.attachNetStream(inStream);
           inVideoWrapper = new UIComponent();
           inVideoWrapper.addChild(inVideo);
           VideoPanel.addElement(inVideoWrapper);
           defaultVideoMode();
        }


       private function setupVideo(event:MouseEvent): void
       {
           camera = Camera.getCamera();
           mic = Microphone.getMicrophone();
           mic.setLoopBack(false); 
           mic.setUseEchoSuppression(true);
           camera.setMode(640,480,20);
           camera.setQuality(65536,90);

           var conn:NetConnection = Connection.getConnection().conn;

           inStream = new NetStream(conn);
           inStream.play(conn);
           showInComingVideo();
       } 
   ]]>

<s:Group x="283" y="330" width="234" height="149" id="VideoPanel" >
</s:Group>
<s:Button x="447" y="151" label="Click Me." click="setupVideo(event)"/>

вот код моего класса соединения:

import flash.net.NetConnection;

public class Connection extends NetConnection
{
    public static var conObj:Connection;
    public var conn:NetConnection;
    public var target:Object;
    public var selector:Function;

    public function Connection()
    {
        conn = new NetConnection;
        target = null;
        selector = null;
        conn.client = this;
}

    public static function getConnection():Connection
    {
        if(conObj == null)
        {
            conObj = new Connection();
        }
            return conObj;
    }
    }

1 Ответ

0 голосов
/ 13 октября 2011

Это правильный порядок при обработке NetConnection и NetStreams:

  1. Создание и установка NetConnection (NetConnection.connect ())
  2. Ожидание события NetConnection.Connect.Success (NetStatusEvent.NET_STATUS)
  3. Создайте свой NetStream и присоедините к нему подключенное NetConnection
  4. Публикуйте / воспроизводите ваш поток
...