jwplayer 6 setup不再支持事件回调。如果我无法在设置中指定onReady回调,如何判断播放器何时准备好?

时间:2012-12-19 21:35:12

标签: javascript javascript-events jwplayer

我正在尝试从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到jw6的迁移documentation,似乎我不能再在播放器设置中包含事件回调:

  

已移除:事件配置块       这种添加事件侦听器的方式完全是冗余的,在功能和所需代码量方面都可以在设置之外添加侦听器。

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

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

我的问题:

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

2 个答案:

答案 0 :(得分: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();
});

答案 1 :(得分:0)

第一个问题是,你的最后一个代码块中有一个拼写错误:它应该是myplayer.onReady(); - )

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

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

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