Pergunta

Estou tendo um problema ao transmitir vídeo. O vídeo não é exibido aleatoriamente, o vídeo está sendo reproduzido enquanto o Playhead se move e os sons de áudio.

É estranho, porém, porque se eu pressionar a pausa, reproduz o vídeo e também se eu o fizer em tela cheia, ele aparecerá.

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
}

Ok, descobri que o motivo pelo qual não mostra é porque o vídeo às vezes tem uma largura e altura de 0 pixels. Alguém sabe por que isso retornaria esses valores? É algo com a natureza dos vídeos de streaming rtmp?

Foi útil?

Solução

Eu tive que ouvir a largura e a altura serem maiores que zero antes de prosseguir. Eu nunca descobri Por quê Mas é assim que consertar isso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top