6

我正在尝试从 jw5 迁移到 jw6。在 jw5 中,我在播放器设置中包含了事件回调。例如:

var myplayer = jwplayer('container').setup({
  flashplayer:  /my/player.swf',
  height: '100%',
  width: '100%', 
  events: {
    'onReady': function(event) {
       alert ("on ready");
    },
    'onPlay': function(event) {
       alert ("on play");
    },        
  }
});

根据 jw5-to-jw6 迁移文档,似乎我不能再在播放器设置中包含事件回调:

已移除:事件配置块 这种添加事件侦听器的方式与在设置之外添加侦听器完全多余,无论是在功能方面还是在所需代码量方面。

如果我理解正确,我应该以这种方式指定事件回调:

myplayer.onReady( function(event){
  alert('on ready');
});
myplayer.onPlay( function(event){
  alert('on play');
});

我的问题:

在我看来,我需要等待 myplayer 对象准备好,然后才能定义这些 myplayer 事件回调。真的?如果我无法在设置中指定 onReady 事件回调,我如何知道 myplayer 何时准备就绪?

4

2 回答 2

10

在 JWPlayer6 中,您可以像添加onReady其他事件处理程序一样添加事件处理程序。这对我有用:

var playerInstance = jwplayer("myElement").setup({
    file: "test.mp4"
});

playerInstance.onReady(function() {
    console.log('ready');

    playerInstance.onPlay(function() {
        console.log('playing');
    });

    playerInstance.play();
});
于 2012-12-19T21:47:26.527 回答
0

第一个问题是,您在最后一个代码块中有错字:应该是myplayer.onReady();-)

此外,事件处理程序一旦执行就会连接到相应的对象。

所以我认为你应该简单地将你的 jwplayer 设置和onReady&onPlay事件放入$(document).ready().

我认为这应该按预期工作。

于 2012-12-19T21:45:48.010 回答