如何检测Iframe视频何时结束?没有API

时间:2018-01-19 12:09:36

标签: javascript jquery video iframe

我的网站上生成了iframe。 iframe的src是来自数据库的视频ID。我想知道,我怎么能检测到视频播放完毕。 我嵌入了youtube视频:

echo "<iframe width='50%' height='60%' id='cc' src='https://www.youtube.com/embed/" . $data_song[0] . "' frameborder='1' allowfullscreen></iframe><br>";

感谢您的任何建议。

2 个答案:

答案 0 :(得分:0)

好的,既然您正在使用iframe来播放YouTube视频,那么您可以通过此方式实现目标,

当Player.Status = 0时,表示视频已停止。我评论过那些让你容易理解的内容。

    <script type="text/javascript">

 var player;

$(document).ready(function () {
    onYouTubePlayerAPIReady();
});


 function onYouTubePlayerAPIReady() {
  player = new YT.Player('ytplayer', {
    events: {
        'onStateChange': getStatus
       }
    });
 }

 var tag = document.createElement('script');
 tag.src = "http://www.youtube.com/player_api";
 var firstScriptTag = document.getElementsByTagName('script')[0];
 firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

    function getStatus() {

    var sStatus;
    sStatus = player.getPlayerState();

      if (sStatus == -1) {}  //Video has not started yet

      else if (sStatus == 0) {  

      // video has stopped. This is the event that you want

     }
     else if (sStatus == 1) { } //Video is playing
     else if (sStatus == 2) {}  //Video is paused
     else if (sStatus == 3) { } //video is buffering 
     else if (sStatus == 5) { } //Video is cued.
   }

  </script>

答案 1 :(得分:0)

如果您使用标记&lt;video&gt;则更好。

例如:

您的HTML

<video id="videoplayer">

你的JS

var myvideo = document.getElementById('videoplayer'); myvideo.addEventListener('ended',function() { // The video's callback } ,false);