прямая трансляция Flex - PullRequest
2 голосов
/ 30 января 2011

Я работал над приложением Flex, которое отправляет канал с моей веб-камеры на сервер Flash Media.Приложение подключается к серверу нормально, но по какой-то причине камера ничего не отправляет на медиасервер.Я почти уверен, что ответ на мой вопрос очень прост, но мне нужен другой взгляд, чтобы посмотреть на мой код и сказать, что я делаю неправильно.Любая помощь будет очень !!ОТЛИЧНО ... ценится.Мне нужно сохранить немного оставшихся волос!вот функция ... еще раз спасибо.

private function Publisher():void{

            var camera1:Camera = Camera.getCamera();
            var video:Video = new Video(285, 254);
            if (camera1)
            {
                video.attachCamera(camera1);
                VideoDisplay1.addChild(video);
                camera1.addEventListener(ActivityEvent.ACTIVITY, camera_activity);
                camera1.addEventListener(StatusEvent.STATUS, camera_status);
            }

            var nc:NetConnection = new NetConnection();
            nc.connect("rtmp://po9nawn4.rtmphost.com/Application");
            nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);

            function netStatusHandler(event:NetStatusEvent):void {
                switch (event.info.code) {
                    case "NetConnection.Connect.Success":
                        var ns:NetStream = new NetStream(nc);
                        ns.attachCamera(camera1);
                        ns.publish("test", "live");
                        break;
                    case "NetStream.Play.StreamNotFound":
                        trace("Unable to locate video: ");
                        break;
                }
            }

        }

1 Ответ

0 голосов
/ 30 января 2011

попробуйте переместить netStatusHandler снаружи Publisherи кстати вы подключаетесь к приложению FMS по умолчанию?fms_adminConsole.swf показывает ваш клиент? обн .:

package  {
/**
 * ...
 * @author www0z0k
 */
    import flash.events.NetStatusEvent;
    import flash.media.Camera;
    import flash.media.Video;
    import flash.net.NetConnection;
    import flash.net.NetStream;
    import flash.display.Sprite;
    [SWF(width='400', height='300', frameRate='30')]
    public class NewClass extends Sprite {
    private var vid:Video;
    private var nc:NetConnection;
    private var ns:NetStream;
    private var baseUrl:String = 'rtmp://192.168.1.100/live';
    private var appUrl:String = 'stream1';
    private var cam:Camera;
    public function NewClass() {
        vid = new Video();
        addChild(vid);
        cam = Camera.getCamera();
        vid.attachCamera(cam);
        nc = new NetConnection();
        nc.addEventListener(NetStatusEvent.NET_STATUS, onStatus);
        nc.connect(baseUrl);
    }

    private function onStatus(e:NetStatusEvent):void {
            switch (e.info.code) {
            case "NetConnection.Connect.Success":
                ns = new NetStream(nc, NetStream.CONNECT_TO_FMS);
                ns.attachCamera(cam);
                ns.addEventListener(NetStatusEvent.NET_STATUS, onStatus);
                ns.publish(appUrl, 'live');
                break;
             }
      }
  }
}

отлично работает на моем dev fms

...