YouTube 视频结束时的事件

Posted

技术标签:

【中文标题】YouTube 视频结束时的事件【英文标题】:Event when YouTube video finished 【发布时间】:2012-06-02 03:39:10 【问题描述】:

我有一个简单的 html 代码,可以在点击图片后播放 YouTube 视频:

<body>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 

<div id="ytapiplayer2" style="display:none;">
<object  >
<param name="movie" value="http://www.youtube.com/v/kCfP003Btjw?fs=1&hl=en_US&rel=0&autoplay=1"></param>
<param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param>
<embed src="http://www.youtube.com/v/kCfP003Btjw?fs=1&hl=en_US&rel=0&autoplay=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true"  ></embed>
</object>

</div>


<img src="https://i.qmyimage.com/mgen/global/zGetImageNew.ms?args=%22shpimg4198.jpg%22,425,96,1" id="imageID" />
<script type="text/javascript">
$('#imageID').click(function() 
$('#ytapiplayer2').show();
$('#imageID').hide();
);
</script>
</body>

视频播放完毕后,我需要隐藏视频并显示图像。怎么可能实现?

【问题讨论】:

【参考方案1】:

Youtube 有一个 JavaScript API:https://developers.google.com/youtube/js_api_reference

你需要的是onStateChange 事件,它在结束时会给你 0。

player.addEventListener("onStateChange", function(state)
    if(state === 0)
        // the video is end, do something here.
    
);

【讨论】:

hm,我在代码中添加了 player.addEventListener("onStateChange", function(state) if (state === 0) alert('end'); );但事件没有发生! 也许你必须改变你嵌入视频的方式,看这里的例子:developers.google.com/youtube/js_api_reference#Examples 并记得加载 api 脚本 状态是一个对象。您必须检查 state.data === 0(我在 iframe url 中使用了 &enablejsapi=1&version=3) 请注意,JavaScript API 现在已弃用;建议您使用 IFrame API:developers.google.com/youtube/iframe_api_reference,它具有类似的状态更改方法。 有谁知道这是否也可以在直播中实现?

以上是关于YouTube 视频结束时的事件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 uiwebview iOS 中处理 YouTube 视频事件(开始、结束等)

使用 YouTube API 播放带有开始和结束时间的 YouTube 视频

MediaElement.js (WordPress) 为 YouTube 视频设置结束时间

YouTube(注入)视频结束回调

Youtube Player API Ended 状态从未触发

如何在 AMP 上分享具有特定开始和结束时间的 YouTube 视频?