Проблема с отображением видео при потоковой передаче - PullRequest
1 голос
/ 27 ноября 2009

У меня проблема с потоковым видео. Видео случайно не показывается, видео воспроизводится, хотя движется точка воспроизведения и звучит звук.

Это странно, потому что, если я нажимаю pause, то воспроизводится видео, а также, если я делаю его полноэкранным, оно появляется.

private var videoURL:String = "filename.f4v";
private function setupConnection():void
{
    connection = new NetConnection();
    connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
    connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
    connection.addEventListener(AsyncErrorEvent.ASYNC_ERROR, onErrorConnect);
    connection.connect("rtmp://url to my streaming server");       
}

private function netStatusHandler(event:NetStatusEvent):void
{
    trace("event.info.code "+event.info.code);
    switch (event.info.code) {
        case "NetConnection.Connect.Success":
            connectStream();
            break;
         case "NetStream.Play.Start":
            onPlayVideoHandler();
            break;
        case "NetStream.Play.StreamNotFound":
            trace("Stream not found: " + videoURL);
            break;
        default :
    }         
}      

private function onErrorConnect(event:AsyncErrorEvent):void
{
    trace("onErrorConnect: " + event);
}         

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

private function connectStream():void
{
    stream = new NetStream(connection);
    stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
    stream.bufferTime   = 10;           

    var client:Object   = new Object();
    client.onMetaData   = onMetaData;
    stream.client       = client;           

    video           = new Video(200, 200);
    video.name      = "video";
    video.addEventListener(Event.ADDED_TO_STAGE, videoAddedToStage)
    video.attachNetStream(stream);
    video.smoothing     = true;
    video.x         = 0;
    video.y         = 0;
    mainHolder.addChild(video); 

    stream.play(videoURL, 0, 100, true);        
    stream.seek(0);
}

private function onPlayVideoHandler():void
{
        // add Controls
}

ОК. Я выяснил причину, по которой он не отображается, потому что видео иногда имеет ширину и высоту 0 пикселей. Кто-нибудь знает, почему он будет возвращать эти значения? Это что-то вроде природы потокового видео RTMP?

1 Ответ

1 голос
/ 26 июля 2010

Я должен был прислушиваться к ширине и высоте, чтобы быть больше нуля, прежде чем продолжить. Я так и не узнал почему но вот как это исправить.

...