Question

Je rencontre un problème lors du streaming vidéo. Au hasard, la vidéo n’est pas affichée. Elle est en cours de lecture lorsque la tête de lecture se déplace et que les sons

C’est étrange, car si j’appuie sur pause, la lecture s’affiche et si je l’affiche en plein écran, elle apparaît.

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 J'ai découvert la raison pour laquelle cela ne se voit pas, c'est parce que la vidéo a parfois une largeur et une hauteur de 0 pixel. Quelqu'un sait pourquoi il renverrait ces valeurs? Est-ce quelque chose à faire avec la nature des vidéos en streaming RTMP?

Était-ce utile?

La solution

J'ai dû écouter pour que la largeur et la hauteur soient supérieures à zéro avant de continuer. Je n'ai jamais su pourquoi mais voici comment le réparer.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top