Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在YouTube上加载VideoById();s普通玩家(非无铬)_Javascript_Api_Youtube - Fatal编程技术网

Javascript 在YouTube上加载VideoById();s普通玩家(非无铬)

Javascript 在YouTube上加载VideoById();s普通玩家(非无铬),javascript,api,youtube,Javascript,Api,Youtube,我在网页上有一个YouTube的播放器。我需要更改此播放器动态播放的视频 这是(相对)容易使用YouTube的无铬播放器。它有一种非常有效的方法。问题是,无铬播放器没有任何控件(播放/暂停等)。具有所有这些,但它没有loadVideoById()方法 有没有办法将普通播放器的控件包含到无铬播放器中,或者在普通播放器中实现loadVideoById()方法 谢谢。您不能这样做,因为“常规youtube播放器”中的调用在URL中有VideoID作为参数: 常规视频: 无铬: 相反,您可以轻松创建

我在网页上有一个YouTube的播放器。我需要更改此播放器动态播放的视频

这是(相对)容易使用YouTube的无铬播放器。它有一种非常有效的方法。问题是,无铬播放器没有任何控件(播放/暂停等)。具有所有这些,但它没有
loadVideoById()
方法

有没有办法将普通播放器的控件包含到无铬播放器中,或者在普通播放器中实现
loadVideoById()
方法


谢谢。

您不能这样做,因为“常规youtube播放器”中的调用在URL中有VideoID作为参数:

  • 常规视频:
  • 无铬:
相反,您可以轻松创建自己的函数来更改embbbed SWF,我的意思是,假设您使用的是“常规播放器”,那么使用它您将能够动态地将以前的视频替换为实际的视频

希望这对您有所帮助。

您可以这样做


我发现使用loadVideoByUrl()作为loadVideoByIdl()的替代方法比使用createSWF更容易,您不必这样处理swfobject,它是一个内置函数……只需使用视频ID创建youtube swf url,如:url=”http://www.youtube.com/e/“+VIDEO_ID+”?enablejsapi=1&version=3”并使用loadVideoByUrl()函数提交,如下所示:player.loadVideoByUrl(url)

这样,您就不必处理swfobject,它在这里有详细说明:

player.loadVideoByUrl(mediaContentUrl:String,startSeconds:Number):无效 加载并播放指定的视频

    * The mediaContentUrl must be a fully qualified YouTube player URL in the format http://www.youtube.com/e/VIDEO_ID. In YouTube Data API video feeds, the url attribute of the <media:content> tag contains a fully qualified player URL when the tag's format attribute has a value of 5.
    * startSeconds accepts a float/integer and specifies the time from which the video should start playing. If startSeconds (number can be a float) is specified, the video will start from the closest keyframe to the specified time."
*mediaContentUrl必须是格式为的完全限定的YouTube播放器URLhttp://www.youtube.com/e/VIDEO_ID. 在YouTube数据API视频源中,当标记的格式属性的值为5时,标记的url属性包含完全限定的播放器url。
*startSeconds接受浮点/整数并指定视频开始播放的时间。如果指定startSeconds(数字可以是浮点),视频将从最接近的关键帧开始播放到指定的时间。“

FYI还有一个jQuery插件可以为您完成这项工作,并为您提供大量控件


现在“普通视频播放器”有loadvideoebyid和loadVideoByUrl选项警告:有时谷歌会附加一个
<r标记到YouTube ID的末尾(例如在搜索结果页面中)。如果您不小心复制了它-当您尝试使用
loadVideoById()
时,此不可见字符将给您带来“无效参数”错误。使用光标键确保任何视频的结尾都没有不可见的字符。请记住,在iOS上,如果不显式单击“播放”,则无法启动youtube视频(或任何HTML5视频)。如果调用
loadVideoById()
必须首先检查视频是否正在播放,否则它将进入一个黑匣子,这就容易多了!为什么我一开始不考虑寻找jQuery插件?!谢谢