Использование класса NetConnection - PullRequest
2 голосов
/ 11 октября 2010

Я пытаюсь использовать класс NetConnection для подключения к прямой трансляции видео на внешнем сервере.У меня настроено воспроизведение моего видео, когда пользователь нажимает кнопку «Воспроизвести», однако это отображается в моих выходных данных каждый раз, когда я нажимаю кнопку «Воспроизведение»:

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

Любые идеи о том, почему это не работает?Вот (я думаю, что уместно) код:

 if (playVid.label == "Play") 
 {
  nc = new NetConnection();
      nc.objectEncoding = flash.net.ObjectEncoding.AMF0;
      nc.connect("rtmp://my.rtmp.server:1935/live/");

      nsPlay = new NetStream(nc);
      nsPlay.play("livestream.flv");

 }

Заранее спасибо.

1 Ответ

1 голос
/ 08 марта 2011

Я копирую это с сайта документации Adobe:

package {
import flash.display.Sprite;
import flash.events.*;
import flash.media.Video;
import flash.net.NetConnection;
import flash.net.NetStream;

public class NetStatusEventExample extends Sprite {
    private var videoURL:String = "Video.flv";
    private var connection:NetConnection;
    private var stream:NetStream;

    public function NetStatusEventExample() {
        connection = new NetConnection();
        connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
        connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
        connection.connect(null);
    }

    private function netStatusHandler(event:NetStatusEvent):void {
        switch (event.info.code) {
            case "NetConnection.Connect.Success":
                connectStream();
                break;
            case "NetStream.Play.StreamNotFound":
                trace("Unable to locate video: " + videoURL);
                break;
        }
    }

    private function connectStream():void {
        var stream:NetStream = new NetStream(connection);
        stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
        stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
        var video:Video = new Video();
        video.attachNetStream(stream);
        stream.play(videoURL);
        addChild(video);
    }

    private function securityErrorHandler(event:SecurityErrorEvent):void {
        trace("securityErrorHandler: " + event);
    }

    private function asyncErrorHandler(event:AsyncErrorEvent):void {
        // ignore AsyncErrorEvent events.
    }

}
}

class CustomClient {
public function onMetaData(info:Object):void {
    trace("metadata: duration=" + info.duration + " width=" + info.width + " height=" + info.height + " framerate=" + info.framerate);
}
public function onCuePoint(info:Object):void {
    trace("cuepoint: time=" + info.time + " name=" + info.name + " type=" + info.type);
}
}

Надеюсь, что это может помочь, и если оно выдает ошибку безопасности, вам нужно установить файл политики междоменного доступа на сервере потоковой передачи, который вы тоже подключаете.

Ссылки:

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