【问题标题】:Javascript get embedded youtube idJavascript 获取嵌入的 youtube id
【发布时间】:2012-05-13 11:59:22
【问题描述】:

我嵌入了这样的 youtube 视频:

    <object height="25" width="610"><param name="movie" 
    value="http://www.youtube.com/v/GBApIkX0YN4&hl=en_US&color1=0xf4f4f4&color2=0xffffff&hd=0&fs=0&enablejsapi=1&playerapiid=ytplayer">
    </param>
    <param name="allowFullScreen" value="true">
    </param>
    <param name="allowscriptaccess" value="always">
    </param>
    <embed src="http://www.youtube.com/v/GBApIkX0YN4&hl=en_US&color1=0xf4f4f4&color2=0xffffff&hd=0&fs=0" height="25" width="610" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always">
    </embed></object>

在 youtube 示例中,他们使用以下代码查看玩家状态何时发生变化。

    function onYouTubePlayerReady(playerId) {
  ytplayer = document.getElementById("myytplayer");
  ytplayer.addEventListener("onStateChange", "onytplayerStateChange");
}

    function onytplayerStateChange(newState) {
    alert("Player's new state: " + newState);
    }

当我把它放到我的页面时,当我播放暂停视频时什么都没有发生(我认为它应该做一个警报,说明状态是什么。)

我想使用“GBApIkX0YN4”的 javascript 获取它的 ID,以便我可以使用 youtube api 并找出视频何时结束以调用 javascript 函数。

  1. 有没有更简单的方法来判断视频何时结束?

  2. 如果没有,我如何获得它的 ID?

我看到别人用过

    youtubeID = v.attr('src').match(/youtube\.com.*?v[\/=](\w+)/)[1];

但我不知道如何从嵌入代码中找到网址。

谢谢

【问题讨论】:

    标签: javascript youtube html-parsing


    【解决方案1】:

    您应该使用Youtube Javascript API 这可以通过包含&amp;enablejsapi=1 在您的嵌入网址中启用,这样您的网址将如下所示:

    http://www.youtube.com/v/GBApIkX0YN4&amp;hl=en_US&amp;color1=0xf4f4f4&amp;color2=0xffffff&amp;hd=0&amp;fs=0&amp;enablejsapi=1

    为了调用播放器 API 方法,您必须首先获取对您希望控制的播放器对象的引用。这可以通过在 or 标签上调用 getElementById() 来获取玩家对象来完成。

    然后您可以在播放器对象上设置onStateChange 事件,该事件将根据视频的状态返回一个值。您需要检查该值是否为 0,表示视频已结束。

    来自文档:

    This event is fired whenever the player's state changes. Possible values are unstarted (-1), ended (0), playing (1), paused (2), buffering (3), video cued (5). When the SWF is first loaded it will broadcast an unstarted (-1) event. When the video is cued and ready to play it will broadcast a video cued event (5).
    

    希望对你有帮助。

    【讨论】:

    • getElementById() 在 or 标签上。这是我不确定的部分
    • 有 Yotube API 的演示和用于在 lovelogic.net 广播电台上按顺序播放视频的“on-state-change”功能。只需右键单击即可查看源代码,这一切都是使用 javascript 完成的。
    • 我更新了我的代码。你能告诉我为什么它不起作用吗?
    猜你喜欢
    • 2012-06-23
    • 2019-02-20
    • 2019-02-14
    • 2012-03-25
    • 1970-01-01
    • 2013-07-14
    • 2011-11-19
    • 2013-01-19
    • 1970-01-01
    相关资源
    最近更新 更多