2

大家好,

这是我在 stackoverflow 上的第一篇文章,我以前一直是一个坐下来看看这里发生了什么的人,从来没有贡献过,但现在我终于有机会了..

我的问题是我有一个 swf 文件,我正在使用 SWFObject 在我的 html 页面上播放它,现在我想实现一个 javascript 方法,该方法在视频完全播放或停止时触发..

这是我的代码

<html><head>
  <title>PENSIONS BOOST</title>




<script type="text/javascript" src="https://aimhighermarketing.s3.amazonaws.com/videocontrollers/swfobject.js"></script>
</head><body>
 <div id="player" align="center">
  <script type="text/javascript">
var so = new SWFObject('https://aimhighermarketing.s3.amazonaws.com/videocontrollers/player.swf','mp1','640','480','10');
so.addParam('allowscriptaccess','always');
so.addParam('allowfullscreen','true');
so.addVariable('frontcolor','FFFFFF');
so.addVariable('lightcolor','FFFFFF');
so.addVariable('screencolor','FFFFFF');
so.addParam('flashvars','&file=HTTP://soci7361@socialnetworkbizbuilder.com/videos/pbsalesvideov2.mp4&&controlbar=none&autostart=true');

so.write('player');</script>
</div>
</body>
</html>

,任何形式的帮助都非常感谢..请帮助..

谢谢

4

1 回答 1

3

很想帮助你,但不幸的是你错过了非常重要的信息。SWFObject 只是一个将对象标签安全地放置在用户浏览器上的工具。还记得那些必须点击 OBJECT 标签才能激活它的日子吗?好吧,SWFObject 解决了这个问题……等等。

我们需要知道的是您使用的是哪个视频播放器?Flash 实际上是将事件触发到 javascript,这是您要监听的。

其中最受欢迎的通常是 JWPlayer 或 Flowplayer。

如果您可以让我们知道它是哪一个,或者您使用的是哪种 Flash 播放器,我很乐意为您做一些快速研究。


没关系,我刚刚访问了您的 SWF 文件,发现它是 JW Player 4。

下面是监听事件变化的 JS 代码:

var player;
function playerReady(object) {
  player = document.getElementById(object.id);
    player.addModelListener("state","playerStateChanged");
}
function playerStateChanged(obj) {
    if (obj.newstate == 'COMPLETED') {
        // Your video has finished playing
    } else if (obj.oldstate == 'IDLE' AND obj.newstate == 'PLAYING') {
        // Your video started to play. Now, this is not fully accurate. IDLE can also mean they pressed STOP and sat there.
    }
}

实际上,您应该有一个“startedVideo = false;” 并在第一次播放时将其更改为 true。然后你就可以知道它是什么时候开始播放的..

即使 JWPlayer 到了第 5 版,他们仍然有一个完整的在线 JS API 文档: JWPlayer 4 JavaScript API

于 2012-07-13T19:49:53.420 回答