Javascript Ooyala播放器事件-当播放器到达视频的某个点时发出通知

Javascript Ooyala播放器事件-当播放器到达视频的某个点时发出通知,javascript,api,ooyala,Javascript,Api,Ooyala,我已经深入研究了Ooyala播放器JS API,搜索当当前正在播放的视频达到其长度的75%时会触发的事件 Ooyala提供了一种方法来查询某个视频的0%、25%、50%、75%和100%浏览量,但我找不到一种方法来做我想做的事情 我已经检查了所有的东西 以前有人经历过吗? 你知道还有什么可以帮助你的信息来源吗 提前谢谢 var videoPlayer = OO.Player.create('Player', embedcode, { autoplay: true, onCreat

我已经深入研究了Ooyala播放器JS API,搜索当当前正在播放的视频达到其长度的75%时会触发的事件

Ooyala提供了一种方法来查询某个视频的0%、25%、50%、75%和100%浏览量,但我找不到一种方法来做我想做的事情

我已经检查了所有的东西

以前有人经历过吗? 你知道还有什么可以帮助你的信息来源吗

提前谢谢

var videoPlayer = OO.Player.create('Player', embedcode, {
    autoplay: true,
    onCreate: function (player) {
        mesb = player.mb;
    }    
});

mesb.subscribe(OO.EVENTS.PLAYBACK_READY, 'example', _.bind(this.videoPlaying, this));
mesb.subscribe(OO.EVENTS.PLAYHEAD_TIME_CHANGED, 'example', _.bind(this.playheadTime, this));
function videoPlaying() {
    var title, desc, embed, dur;
    var vData = videoPlayer.getItem();
    dur = vData.time;

}

function playheadTime() {
    phPos = videoPlayer.getPlayheadTime();
    if (phPos > 90) {
        alert('you are 90 seconds in to the video!');
    }
dur将为您提供视频的总时间。 phPos将为您提供当前播放头时间

你应该能够做的数学和视频触发一个行动,一旦达到一定的百分比。在我的示例中,我将一个警报设置为在视频达到90秒时关闭

I think this will work
var videoPlayer = OO.Player.create('Player', embedcode, {
    autoplay: true,
    onCreate: function (player) {
        mesb = player.mb;
    }    
});

mesb.subscribe(OO.EVENTS.PLAYBACK_READY, 'example', _.bind(this.videoPlaying, this));
mesb.subscribe(OO.EVENTS.PLAYHEAD_TIME_CHANGED, 'example', _.bind(this.playheadTime, this));
function videoPlaying() {
    var title, desc, embed, dur;
    var vData = videoPlayer.getItem();
    dur = vData.time;

}

function playheadTime() {
    if((videoPlayer.getPlayheadTime())>= (videoPlayer.getDuration()*0.25)){ 
      alert('play 25%') 
    }
    if((videoPlayer.getPlayheadTime())>= (videoPlayer.getDuration()*0.50)){ 
      alert('play 50%') 
    }
    if((videoPlayer.getPlayheadTime())>= (videoPlayer.getDuration()*0.75)){ 
      alert('play 75%') 
    }
    if((videoPlayer.getPlayheadTime())>= (videoPlayer.getDuration()*1.00)){ 
      alert('play 100%') 
    }
}
dur将为您提供视频的总时间。 phPos将为您提供当前播放头时间


你应该能够做的数学和视频触发一个行动,一旦达到一定的百分比。在我的示例中,我设置了一个警报,当视频达到90秒时,警报将熄灭。

前面的答案中提供的代码对我有所帮助,但需要一些修改。需要将其包装在
OO.ready
中,并进行修改,以使代码准确调用4次:完成25%、50%、75%和100%

I think this will work
var videoPlayer = OO.Player.create('Player', embedcode, {
    autoplay: true,
    onCreate: function (player) {
        mesb = player.mb;
    }    
});

mesb.subscribe(OO.EVENTS.PLAYBACK_READY, 'example', _.bind(this.videoPlaying, this));
mesb.subscribe(OO.EVENTS.PLAYHEAD_TIME_CHANGED, 'example', _.bind(this.playheadTime, this));
function videoPlaying() {
    var title, desc, embed, dur;
    var vData = videoPlayer.getItem();
    dur = vData.time;

}

function playheadTime() {
    if((videoPlayer.getPlayheadTime())>= (videoPlayer.getDuration()*0.25)){ 
      alert('play 25%') 
    }
    if((videoPlayer.getPlayheadTime())>= (videoPlayer.getDuration()*0.50)){ 
      alert('play 50%') 
    }
    if((videoPlayer.getPlayheadTime())>= (videoPlayer.getDuration()*0.75)){ 
      alert('play 75%') 
    }
    if((videoPlayer.getPlayheadTime())>= (videoPlayer.getDuration()*1.00)){ 
      alert('play 100%') 
    }
}
var mplayer, mesb, dur, title;
OO.ready(function() {
  var lastTriggerPos;
  mplayer = OO.Player.create('ooyalaplayer', embedcode);
  mplayer.mb.subscribe(OO.EVENTS.PLAYBACK_READY, 'example', function(eventName) {
    title = mplayer.getCurrentItemTitle();
    var vData = mplayer.getItem();
    dur = parseInt(vData.time);
  });
  mplayer.mb.subscribe(OO.EVENTS.PLAYHEAD_TIME_CHANGED, 'example', function(eventName) {
    phPos = parseInt(mplayer.getPlayheadTime());
    if ((phPos == parseInt(dur * 0.25)) && phPos != lastTriggerPos) {
      lastTriggerPos = phPos;
      alert('25%');
    }
    if ((phPos == parseInt(dur * 0.50)) && phPos != lastTriggerPos) {
      lastTriggerPos = phPos;
      alert('50%');
    }
    if ((phPos == parseInt(dur * 0.75)) && phPos != lastTriggerPos) {
      lastTriggerPos = phPos;
      alert('75%');
    }
    if ((phPos == parseInt(dur * 1)) && phPos != lastTriggerPos) {
      lastTriggerPos = phPos;
      alert('100%');
    }
  });
});

前面答案中提供的代码对我有所帮助,但需要一些修改。需要将其包装在
OO.ready
中,并进行修改,以使代码准确调用4次:完成25%、50%、75%和100%

var mplayer, mesb, dur, title;
OO.ready(function() {
  var lastTriggerPos;
  mplayer = OO.Player.create('ooyalaplayer', embedcode);
  mplayer.mb.subscribe(OO.EVENTS.PLAYBACK_READY, 'example', function(eventName) {
    title = mplayer.getCurrentItemTitle();
    var vData = mplayer.getItem();
    dur = parseInt(vData.time);
  });
  mplayer.mb.subscribe(OO.EVENTS.PLAYHEAD_TIME_CHANGED, 'example', function(eventName) {
    phPos = parseInt(mplayer.getPlayheadTime());
    if ((phPos == parseInt(dur * 0.25)) && phPos != lastTriggerPos) {
      lastTriggerPos = phPos;
      alert('25%');
    }
    if ((phPos == parseInt(dur * 0.50)) && phPos != lastTriggerPos) {
      lastTriggerPos = phPos;
      alert('50%');
    }
    if ((phPos == parseInt(dur * 0.75)) && phPos != lastTriggerPos) {
      lastTriggerPos = phPos;
      alert('75%');
    }
    if ((phPos == parseInt(dur * 1)) && phPos != lastTriggerPos) {
      lastTriggerPos = phPos;
      alert('100%');
    }
  });
});