【问题标题】:Jquery - detect play on Youtube's object tagJquery - 检测 Youtube 对象标签上的播放
【发布时间】:2018-04-29 10:42:58
【问题描述】:

我使用 object 标签嵌入 youtube 视频。

<object data="http://www.youtube.com/embed/QwievZ1Tx-8" width="100%" height="315"></object>

我想在每次播放视频时触发一个 Ajax 请求(以便服务器可以更新数据库对视频的观看次数)。

有人知道怎么做吗?

注意:假设用户点击视频上的“播放”,AJAX REQUEST CALLED。但是当他们暂停和恢复视频时,AJAX REQUEST DID NOT CALLED.

【问题讨论】:

  • 您可以使用 youtube 告诉您的方式来执行此操作。通过使用iframe api 并收听onStateChange
  • 即使在用户恢复时也会调用状态更改。我不希望它在恢复时调用。

标签: javascript youtube-api


【解决方案1】:

你可以用脚本来做:

$("object")[0].onplay = function () {
    //AJAX REQUEST CALLED
};

或:

<object... onplay="myFunction()">

在脚本中

myFunction(){
//AJAX REQUEST CALLED
}

仅在视频开始播放时发生...

【讨论】:

  • 我将 alert('a') 添加到 myFunction() 并且当我按下播放时它不会提醒任何东西。
【解决方案2】:

您可以使用 youtube iframe api 和回调 onPlayerStateChange 与具有确切事件类型的 event 对象一起调用。另外,如果视频已经开始,请保留一个标志,只有在没有开始时才调用 ajax。

像这样:

var isStarted = false;
function onPlayerStateChange(event) {
  if (event.data == 1 && !isStarted) {
    // call ajax
    isStarted = true;
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-03
    • 2023-03-30
    • 2012-09-22
    • 1970-01-01
    • 2023-03-06
    • 2012-11-20
    相关资源
    最近更新 更多