检查嵌入式YouTube视频是否已启动



我有一个嵌入式YouTube视频的脚本。

这是我的脚本

<object width="500" height="375">
    <param name="movie" 
               value="http://www.youtube.com/v/mLDTfRDM_LE?version=3&autohide=1&showinfo=0&enablejsapi=1">
        </param>
    <param name="allowScriptAccess" value="always">
        </param>
    <embed src="http://www.youtube.com/v/mLDTfRDM_LE?version=3&autohide=1&autoplay=1&showinfo=0&rel=0&enablejsapi=1" 
               type="application/x-shockwave-flash" 
               allowscriptaccess="always" 
               width="500" height="375">
        </embed> 
        </object>

现在我想检查视频是否已开始,并在此基础上发出警报:

"Hii video has started"

有一个类似的链接,就像这个问题一样:https://stackoverflow.com/questions/16215658/checking-whether-an-embedded-youtube-video-has-started

但我有一个不同的脚本。

一般思路是这样的:

1(你需要在<embed>元素上放置一个id属性——这将允许你监听玩家事件。在下一步中需要用到它。此示例假定嵌入 ID 为"myPlayer">

2( 在关闭正文之前,在页面上包含此脚本:

<script>
function onYouTubePlayerReady(playerId) {
        ytplayer = document.getElementById("myPlayer");
        ytplayer.addEventListener("onStateChange", "onytplayerStateChange");
}
function onytplayerStateChange(newState) {
        if (newState=="1") {
                alert("Hii video has started");
        }
}
</script>

onYouTubePlayerReady函数在播放器加载并准备就绪时自动运行;此脚本将在此时设置一个侦听器,如果它听到状态更改事件告诉您视频正在播放,它将执行您想要的警报。

注意一些非常重要的事情。此方法在IE上通常不一致 - 您可以将其作为属性附加到对象元素:

classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"

但是一个更好的解决方案是不使用静态嵌入代码,而是使用 SWFObject。请遵循以下文档:https://developers.google.com/youtube/js_api_reference#Examples

如果你使用jQuery,另一种可能性是tubePlayer插件:http://www.tikku.com/jquery-youtube-tubeplayer-plugin

当然,我最大的建议是根本不使用AS3嵌入,而是使用iFrame:https://developers.google.com/youtube/iframe_api_reference

相关内容

  • 没有找到相关文章