使用 jquery 停止 youtube 视频?

IT技术 javascript jquery youtube
2021-02-02 06:14:58

我有一个我已经构建的 jquery 滑块,基本上只有三个通过应用负左 CSS 值滑动的面板。效果很好,但我在一张幻灯片中有一个 youtube 视频,当我滑动时它不会停止。我试过 display:none 和 Visibility:hidden ,它在除 IE 之外的所有环境中都有效,音频在 IE 中继续播放。

有没有一种简单的方法可以用 jquery 杀死视频?

6个回答

此解决方案简单、优雅且适用于所有浏览器:

var video = $("#playerid").attr("src");
$("#playerid").attr("src","");
$("#playerid").attr("src",video);
大家好。我似乎无法让这个工作,据我所知,这是因为模态代码在我添加了这段代码的地方打开。我已经包含了关于关闭 <body> 标记的代码,但是当我单击链接以激活弹出窗口时,生成的模式代码将在粘贴的 JS 代码下方触发。有谁知道为什么会这样?
2021-03-17 06:14:58
这个解决方案的惊人之处在于,我在提出建议后的 3 年多才使用它,而且它仍然是我发现实现的最简单的方法。
2021-03-25 06:14:58
这是迄今为止我发现的最优雅且易于实施的解决方案,用于解决同样困扰我的问题。6 个小时的谷歌搜索和反复试验,然后我找到了这个宝石。我认为这对人们不起作用的唯一原因是他们是否需要暂停视频。
2021-03-29 06:14:58
这对我来说非常有效。我尝试了此页面上的其他解决方案,但由于 http 和 https 之间的不匹配,无法使它们中的任何一个工作。
2021-04-05 06:14:58
很棒的解决方案,如果您不介意重置视频,则可以完美运行。
2021-04-10 06:14:58

来自API 文档

player.stopVideo()

所以在 jQuery 中:

$('#playerID').get(0).stopVideo();
@Mike 我不确定 stop 和 stopVideo 之间的区别。.get(0)是让从jQuery对象DOM元素。
2021-03-14 06:14:58
实际上,它似乎比我最初想象的要复杂。它需要 flash 8+,并且您需要在 url 中添加“&enablejsapi=1”。然后你要弄清楚是调用embed标签上的函数还是object标签上的函数
2021-03-18 06:14:58
我无法让它发挥作用。为什么你必须在这个例子中使用 .get(0) ?同样令人困惑的是,在code.google.com/apis/youtube/chromeless_example_1.html的示例中- 在控制视频的链接上调用的方法是 <a onclick="stop();" href="javascript:void(0);">停止</a>。所以它使用“stop();” 与“stopVideo();”相反。但我无法让他们工作。
2021-04-02 06:14:58
很棒的解决方案。致 wesbos:PlayerID 不是 youtube iframe 的 ID,而是 youtube iframe 周围的 div。例如 - <div id="playerID"><object width="853" height="505">........</object></div>
2021-04-06 06:14:58
哇,这么容易?我的玩家 ID 是什么?<object width="853" height="505"><param name="movie" value=" youtube.com/v/... name="allowFullScreen" value="true"></param><param name=" allowscriptaccess" value="always"></param><embed src=" youtube.com/v/JHao-XRMJus&hl=en_US&fs=1&hd=1 " type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen ="true" width="853" height="505"></embed></object>
2021-04-07 06:14:58

开始视频

var videoURL = $('#playerID').prop('src');
videoURL += "&autoplay=1";
$('#playerID').prop('src',videoURL);

停止视频

var videoURL = $('#playerID').prop('src');
videoURL = videoURL.replace("&autoplay=1", "");
$('#playerID').prop('src','');
$('#playerID').prop('src',videoURL);

如果没有其他参数,您可能希望将“&autoplay=1”替换为“?autoplay=1”

适用于 FF 和 Chrome 上的 vimeo 和 youtube

感谢您的回答。
2021-04-05 06:14:58
优秀的答案
2021-04-10 06:14:58

1.包含

<script type="text/javascript" src="http://www.youtube.com/player_api"></script>

2.添加你的youtube iframe。

<iframe id="player" src="http://www.youtube.com/embed/YOURID?rel=0&wmode=Opaque&enablejsapi=1" frameborder="0"></iframe>

3.魔法时间。

      <script>
            var player;
            function onYouTubePlayerAPIReady() {player = new YT.Player('player');}
            //so on jquery event or whatever call the play or stop on the video.
            //to play player.playVideo();
            //to stop player.stopVideo();
     </script>
您是否包含脚本标记并且“&enablejsapi=1”添加到您的 iframe src 中?
2021-03-23 06:14:58
我试过了,元素'player.stopVideo()' 回来了,因为它没有被定义。我错过了什么?
2021-03-28 06:14:58
关闭 YouTube 播放器的最自然方式似乎是使用 YouTube API。在许多已发布的答案中,这个特别的答案正是这样做的。
2021-03-28 06:14:58

我以前遇到过这个问题,我得出的结论是,在 IE 中停止视频的唯一方法是将其从 DOM 中删除。

@cobbal:你可以做 var $player = $(playerDiv).detach();
2021-03-14 06:14:58
太好了,我可以以某种方式再次添加它吗?
2021-03-21 06:14:58
你可以尝试var playercopy = $(playerDiv).clone()$(playerDiv).remove()
2021-03-24 06:14:58