Проблема с отображением видео при потоковой передаче

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

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

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?


person daihovey    schedule 27.11.2009    source источник
comment
попробуйте удалить seek (0) в методе connectStream ()   -  person Mims H. Wright    schedule 27.11.2009
comment
Спасибо, Мимс, но иногда он все равно не отображается, когда я удаляю поиск (0);   -  person daihovey    schedule 30.11.2009


Ответы (1)


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

person daihovey    schedule 26.07.2010