单击按钮时更改嵌入式 youtube 视频中的时间

Posted

技术标签:

【中文标题】单击按钮时更改嵌入式 youtube 视频中的时间【英文标题】:Change time in embedded youtube video when a button is clicked 【发布时间】:2014-12-03 03:25:22 【问题描述】:

我想嵌入一个 youtube 视频并提供按钮,当您点击它们时,它们会转到视频中的特定时间并从那里继续播放。 我尝试使用 jquery 并更改“src”属性,如下所示:

原文出处:

<iframe src="http://www.youtube.com/embed/PjDw3azfZWI?&t=5m30s&rel=0&amp">

JS:

$("#link1").click(function() 
    $("#video").attr("src", "http://www.youtube.com/embed/PjDw3azfZWI?&t=10m30s&rel=0&amp");
);

当我单击按钮时,这会导致浏览器刷新。

链接到我在想的图片:http://i.imgur.com/sCFZSIn.png。单击按钮应使视频跳转到指定的时间。

【问题讨论】:

添加 &amp;t=37 其中“37”是视频的时间量应该可以解决问题。例如这是该视频的第 19 秒...youtube.com/watch?v=WoZ2kTlwKTk&t=19(石玫瑰 - 愚人金 - 以防你想知道 ;-) 那只是刷新页面 @Lightvvind,我的回答对你有用吗? @JustinPowell 我让播放器开始工作,但 seekTo() 函数不会做任何事情。 pauseVideo() 等其他函数确实有效。 @Lightvvind,我在我的答案中添加了一个小提琴。 【参考方案1】:

您不应重新加载 iframe 来控制视频;使用 javascript API 方法。在这里查看 seekTo:https://developers.google.com/youtube/iframe_api_reference#Playback_controls

基本上,一旦您的 iframe 加载完毕,JS API 将调用 onYouTubeIframeAPIReady(),您可以在其中构造一个 YouTube 播放器对象。然后可以使用该播放器引用来控制视频,例如 player.seekTo()。

您仍然可以使用您的 iframe,如 this section 底部所述:

如入门部分所述,而不是编写 页面上的空元素,播放器 API 的 JavaScript 然后代码将替换为一个元素,您可以创建 标记自己。

...

如果你确实写了标签,那么当你构造 YT.Player 对象时,你不需要指定宽度和高度的值,它们被指定为标签的属性,或者 videoId 和 player 参数,这在 src URL 中指定。

您的代码缺少的部分是 YT.Player 对象,您必须在上述回调方法中构造它。这提供了对播放器控件的访问。

这是Fiddle 的演示:

var player, seconds = 0;
function onYouTubeIframeAPIReady() 
    console.log("player");
    player = new YT.Player('player', 
        events: 
          'onReady': onPlayerReady
        
      );


function onPlayerReady(event) 
    event.target.playVideo();


function seek(sec)
    if(player)
        seconds += sec;
        player.seekTo(seconds, true);
    

您可以将此代码放在单独的脚本中,但请确保它位于根范围内(例如在您的 head 标记中),而不是将其放在 onLoad 处理程序中。

【讨论】:

如何用 angulas js 控制器做到这一点?我试图在控制器中使用这些功能,然后加载 api 脚本和资源。但是还是不行?

以上是关于单击按钮时更改嵌入式 youtube 视频中的时间的主要内容,如果未能解决你的问题,请参考以下文章

钩住嵌入式 youtube 播放器内的单击事件

使用 jQuery 单击按钮时,如何暂停 YouTube 视频?

带有嵌入式 youtube 视频的 Android WebView,全屏按钮冻结视频

如何使用 Phonegap 在 Android 上嵌入 YouTube 视频

YouTube 嵌入 UIWebViews 不再适用于 iOS

单击图像时开始/播放嵌入式(iframe)youtube-video