在Javascript中检测Flash电影的结束

9

有没有一种方法可以检测Flash电影的结束(OOTB,不使用任何类型的flash回调)。

或者,有没有一种方法可以知道电影的长度?

更新:

IsPlaying()看起来很有前途(定期检查它),但事实证明,现在没有人再创建直接的swf了;现在,内容嵌入到主层中,而当内容播放时,主电影会停止,并且IsPlaying始终为false...

3个回答

3
var movie = window.document.movie

if(movie.TCurrentFrame("/") == movie.TotalFrames())
    alert("Movie Finished");

或者您可以有以下方式:
if (!movie.IsPlaying())
    alert("Movie Stopped");

但这并不是你真正想要的。

嘿,你知道这个API有没有文档吗? - Dave Taylor
实际上回顾过去,我甚至不知道我从哪里获取那些信息,抱歉。 - AmbrosiaDevelopments
虽然在我的情况下它能够工作,但它是否真的取决于Flash电影的编写方式? - Yeung

1
import fl.video.VideoEvent.COMPLETE
video.addEventListener(VideoEvent.COMPLETE, alertHTML);

function alertHTML(e:VideoEvent):void{
    ExternalInterface.call("alert(\"Video has stopped\");");
}

试一下这个。你可以用客户端JavaScript函数替换alert(“视频已停止”);


这是ActionScript对吧?我希望用JavaScript来实现它(这样我就不必打扰我们的Flash开发人员了)。 - Luc

0

您可以使用ffmpeg -i movie.flv 2>&1检查电影长度,但它不会告诉您:

  • 加载视频并开始播放需要多长时间
  • 用户是否按下了“暂停”按钮。

现在,唯一的方法是像其他帖子建议的那样,将一些JavaScript处理程序附加到Flash事件上。


我的问题表述有点不清楚。我指的是.swf类型的Flash动画,而不是.fla文件。 - Luc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接