如何检测YouTubevideo完成播放?
我正在一个拥有大量embedded式YouTubevideo的网站上工作,客户希望在video停止播放时显示一个popup窗口。
我看了YouTube的API,似乎有一种方法来检测video结束时:
http://code.google.com/apis/youtube/js_api_reference.html
但是由于video已经在网站上(已经通过粘贴embedded代码手动添加了数千个video),因此我无法在video中embeddedvideo。
有没有办法检测到这些video的结尾,而不改变任何现有的video(使用JavaScript)?
这可以通过YouTube播放器API完成:
工作示例:
<div id="player"></div> <script src="http://www.youtube.com/player_api"></script> <script> // create youtube player var player; function onYouTubePlayerAPIReady() { player = new YT.Player('player', { width: '640', height: '390', videoId: '0Bmhjf0rKe8', events: { onReady: onPlayerReady, onStateChange: onPlayerStateChange } }); } // autoplay video function onPlayerReady(event) { event.target.playVideo(); } // when video ends function onPlayerStateChange(event) { if(event.data === 0) { alert('done'); } } </script>
你可能想要做的是在所有页面上包含一个脚本,执行以下操作… 1.findyoutube-iframe:通过标题的宽度和高度search它,或通过查找www.youtube.com的来源。 你可以通过…做到这一点 – 通过for-in循环遍历window.frames,然后通过属性过滤掉
-
在当前页面的iframe中插入jscript,添加onYoutubePlayerReady必须包含的函数http://shazwazza.com/post/Injecting-JavaScript-into-other-frames.aspx
-
添加事件监听器等。
希望这可以帮助