2014-01-20 2 views
0

Проблема с компонентом FLVPlayback и методом stop() play(). Вот код моего класса, videoPlayer - компонент FLVPlayback на сцене. Массив держит видео в формате [videos/s1.flv, videos/s2.flv, videos/s3.flv] Когда я вызываю функцию stopVideo(), когда первое видео все еще воспроизводится, оно останавливается и перематывается в кадр 1 видео (работает по назначению), но затем, когда я вызываю метод playVideo(), он снова не воспроизводит видео. Он работает, когда я останавливаю FLVPlayback во время воспроизведения второго или третьего видео. Я знаю, что событие READY не вызывается на первом видео, потому что оно было вызвано в начале. Что я делаю неправильно?FLVPlayback stop/play

public class Intro extends MovieClip { 
        private var intros:XML; 
        private var currentVideo:uint = 0; 
        private var _data:XML; 


private var videos:Array; 

       public function Intro(data:XML) { 
          _data = data; 

          videoPlayer.addEventListener(VideoEvent.COMPLETE, completeHandler); 
          videoPlayer.addEventListener(VideoEvent.READY, videoReady); 
          videoPlayer.opaqueBackground = 0x000000; 
          videoPlayer.autoRewind = true; 
       } 

       function completeHandler(evt:Event):void { 
          trace("video complete"); 
          currentVideo++; 


          if (currentVideo < videos.length) { 
            videoPlayer.source = videos[currentVideo]; 
          } else { 
            currentVideo = 0; 
          } 
       } 

       public function playVideo():void { 
          trace(currentVideo); 
          if (currentVideo == 0) { 
            trace(videos[currentVideo]); 
            videoPlayer.play(videos[currentVideo]); 
          } else { 
            videoPlayer.source = videos[currentVideo]; 
          } 
       } 

       public function prepareVideos(introVideos:XML):void { 
          intros = introVideos; 
          var list:XMLList = intros.entry; 
          var entry:XML; 
          var len:int = list.length(); 
          videos = new Array(); 

          for (var i:int = 0; i < len; i++) { 
            entry = list[i]; 
            videos.push(entry); 
          } 
          dispatchEvent(new Event(Event.COMPLETE)); 
       } 

       public function stopVideo():void { 
          if (videoPlayer.playing) { 
            trace("video stopped"); 
            videoPlayer.stop(); 
            currentVideo = 0; 
          } 
       } 

       private function resetVideo(e:VideoEvent):void { 
          videoPlayer.seek(0); 
       } 

       private function videoReady(e:VideoEvent):void { 
          trace("video ready"); 
          videoPlayer.play(); 
       } 
     } 

ответ

0

Вы только хотите указать имя видео в методе воспроизведения при первом воспроизведении видео. после этого (т. е. после применения stop()) просто используйте метод play() без параметров

Смежные вопросы