FLVPlayback组件和stop() play()方法出现问题。这是我的类的代码,videoPlayer是舞台上的一个FLVPlayback组件。该数组包含格式为videos/s1.flv、videos/s2.flv、videos/s3.flv的视频。当我调用stopVideo()函数时,当第一个视频仍在播放时,它会停止并倒带到视频的第1帧(工作正常),但是当我调用playVideo()方法时,它就不再播放视频了。当我在播放第二个或第三个视频时停止FLVPlayback时,它可以工作。我知道READY事件没有在第一个视频中被调用,因为它是在开始时被调用的。我哪里做错了?
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();
}
}发布于 2014-01-20 12:42:58
您只需要在第一次播放视频时,在play方法中指定视频名称。在此之后(即,在应用stop()之后)只需使用不带参数的play()方法
https://stackoverflow.com/questions/21226200
复制相似问题