2009-11-27 3 views
1

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

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

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 
} 

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

+0

попробуйте удалить поиск (0) в методе connectStream() –

+0

Спасибо Mims, но он по-прежнему иногда не отображается, когда я удаляю поиск (0); – daidai

ответ

1

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