gpt4 book ai didi

javascript - YouTube(注入(inject))视频结束回调

转载 作者:可可西里 更新时间:2023-11-01 01:22:54 25 4
gpt4 key购买 nike

我将 YouTube iframe 注入(inject)文档准备好的 div 并将其绑定(bind)到点击:

jQuery(document).ready(function($) {
jQuery('.video-thumb').click(function(){
...
$('#player').html('<iframe width="761" height="421" src="http://www.youtube.com/embed/' + $(this).attr('videoid') + '?rel=0&wmode=transparent" frameborder="0" allowfullscreen></iframe>');
...
}
}

我想在视频结束时进行回调。我读过 onYouTubePlayerAPIReady , 但必须准备好外部文件。

我已经尝试通过这种外部文件准备加载视频播放器:

var player;
function onYouTubePlayerAPIReady() {
player = new YT.Player('player', {
height: '421',
width: '761',
videoId: '',
playerVars: { autoplay: 1, autohide: 1, showinfo: 0 },
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}

但我遇到了一些问题:

  • showinfo:0 没用,最后还是得到了其他的视频缩略图
  • 我不知道如何更改视频 ID(并重新初始化视频?)
  • 比第一种方法(注入(inject) iframe)更多的脚本错误

我更喜欢使用第一种方法,但是如何创建视频结束回调?谢谢。

最佳答案

以下代码的工作示例也在 jsfiddle.net 上.

一些注意事项:

  • 使用 iframe_api , 而不是 javascript_api
  • YT.Player 构造函数是最小的,因为您要自己构建 iframe。
  • “playerVars”作为 iframe URL 参数包含在内。
  • 设置参数“enablejsapi=1”。

示例标记

<script src="http://www.youtube.com/iframe_api"></script>

<a style="display: block;" class="video-thumb" id="HuGbuEv_3AU" href="#">
Megadeth: Back In The Day
</a>
<a style="display: block;" class="video-thumb" id="jac80JB04NQ" href="#">
Judas Priest: Metal Gods
</a>
<a style="display: block;" class="video-thumb" id="_r0n9Dv6XnY" href="#">
Baltimora: Tarzan Boy
</a>

<div id="container"></div>
<div id="log">--Logging enabled--</div>

JavaScript

function log(msg) {
jQuery('#log').prepend(msg + '<br/>');
}

function onPlayerStateChange(event) {
switch(event.data) {
case YT.PlayerState.ENDED:
log('Video has ended.');
break;
case YT.PlayerState.PLAYING:
log('Video is playing.');
break;
case YT.PlayerState.PAUSED:
log('Video is paused.');
break;
case YT.PlayerState.BUFFERING:
log('Video is buffering.');
break;
case YT.PlayerState.CUED:
log('Video is cued.');
break;
default:
log('Unrecognized state.');
break;
}
}

jQuery(document).ready(function($) {
$('.video-thumb').click(function() {

var vidId = $(this).attr('id');
$('#container').html('<iframe id="player_'+vidId+
'" width="420" height="315" src="http://www.youtube.com/embed/'+
vidId+'?enablejsapi=1&autoplay=1&autohide=1&showinfo=0" '+
'frameborder="0" allowfullscreen></iframe>');

new YT.Player('player_'+vidId, {
events: {
'onStateChange': onPlayerStateChange
}
});
});
});

关于javascript - YouTube(注入(inject))视频结束回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12107202/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com