您可以在不启用自动播放的情况下隐藏 YouTube 嵌入的控件吗?

Posted

技术标签:

【中文标题】您可以在不启用自动播放的情况下隐藏 YouTube 嵌入的控件吗?【英文标题】:Can you hide the controls of a YouTube embed without enabling autoplay? 【发布时间】:2014-01-09 17:41:44 【问题描述】:
<iframe   src="//www.youtube.com/embed/qUJYqhKZrwA?autoplay=1&showinfo=0&controls=0" frameborder="0" allowfullscreen>

如果您删除 ?autoplay=1,视频将无法播放。看起来您不能在未启用自动播放的情况下使用 controls 参数。

不知道为什么 YouTube 嵌入文章中没有提到这一点。

希望我错了。

https://developers.google.com/youtube/player_parameters#controls

【问题讨论】:

【参考方案1】:

设置自动播放=0

<iframe   src="//www.youtube.com/embed/qUJYqhKZrwA?autoplay=0&showinfo=0&controls=0" frameborder="0" allowfullscreen>

如此处所示:Autoplay=0 Test

【讨论】:

注意:这似乎不再起作用。 YouTube 很可能已经更改了他们的 API - 不确定当前的替代/修复是什么。 需要注意的是,用户仍然可以使用右箭头键在视频中向前跳过。似乎每次按键都是 5 秒快进/跳过。如果这是您的目标,您将需要添加参数 &disablekb=1,这将禁用所有键盘功能(包括从键盘播放/暂停)。 showinfo 已弃用,请参阅文档修订历史公告 - link【参考方案2】:

要继续使用 iframe YouTube,您只需将 ?autoplay=1 更改为 ?autoplay=0

实现此目的的另一种方法是使用 YouTube javascript Player API。 (https://developers.google.com/youtube/js_api_reference)

编辑:不再支持 YouTube JavaScript Player API。

<div id="howToVideo"></div>

<script type="application/javascript">

    var ga = document.createElement('script');
    ga.type = 'text/javascript';
    ga.async = false;
    ga.src = 'http://www.youtube.com/player_api';
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(ga, s);

    var done = false;
    var player;

    function onYouTubePlayerAPIReady() 
        player = new YT.Player('howToVideo', 
            height: '390',
            width: '640',
            videoId: 'qUJYqhKZrwA',
        playerVars: 
            controls: 0,
            disablekb: 1
        ,
          events: 
            'onReady': onPlayerReady,
            'onStateChange': onPlayerStateChange
          
        );
    
    function onPlayerReady(evt) 
        console.log('onPlayerReady', evt);
    
    function onPlayerStateChange(evt) 
        console.log('onPlayerStateChange', evt);
        if (evt.data == YT.PlayerState.PLAYING && !done) 
            setTimeout(stopVideo, 6000);
            done = true;
        
    

    function stopVideo() 
        console.log('stopVideo');
        player.stopVideo();
    

</script>

这里是一个 jsfiddle 示例:http://jsfiddle.net/fgkrj/

请注意,播放器的“playerVars”部分中禁用了播放器控件。您做出的一项牺牲是用户仍然可以通过单击来暂停视频。我建议编写一个简单的 JavaScript 函数来订阅停止事件并调用 player.playVideo()

【讨论】:

可以在 playerVars 中设置自动播放 0 吗? 添加&enablejsapi=1参数时不支持JS API吗? 有什么证据表明不再支持 JS api?文档上没有通知说明。【参考方案3】:

使用autoplay=0

自动播放需要 2 个值。

Values: 0 or 1. Default is 0. Sets whether or not the initial video will autoplay when the player loads.

重要的部分

autoplay=0&showinfo=0&controls=0

这是你的问题的演示FIDDLE

【讨论】:

【参考方案4】:

如果您在 src 末尾添加此 ?showinfo=0&amp;iv_load_policy=3&amp;controls=0,它将删除除右下角 YouTube 徽标之外的所有内容 工作示例:http://jsfiddle.net/42gxdf0f/1/

【讨论】:

【参考方案5】:
?modestbranding=1&autohide=1&showinfo=0&controls=0

autohide=1

这是我从未找到的东西......但它是关键:) 我希望它有所帮助

【讨论】:

【参考方案6】:

关注https://developers.google.com/youtube/player_parameters 了解有关视频控件的更多信息,例如:

<iframe id="video_iframe"   src="http://www.youtube.com/v/course_url?start=7&autoplay=0&showinfo=0&iv_load_policy=3&rel=0"
                frameborder="0"
                allowfullscreen></iframe>

start=7&autoplay=0&showinfo=0&iv_load_policy=3&rel=0" frameborder="0"

所有控件都在其中描述

【讨论】:

【参考方案7】:

要删除你的管 controlstitle 你可以这样做

&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/zP0Wnb9RI9Q?autoplay=1&amp;showinfo=0&amp;controls=0" frameborder="0" allowfullscreen &gt;&lt;/iframe&gt;

code with output

showinfo=0 用于删除标题,&amp;controls=0 用于删除音量播放暂停花费

【讨论】:

【参考方案8】:

您可以使用“Youtube-nocookie”隐藏“稍后观看”按钮(这不会隐藏分享按钮)

添加 controls=0 也将删除屏幕底部的视频控制栏,使用 modestbranding=1 将删除屏幕右下角的 youtube 徽标

但是同时使用它们并不能按预期工作(它只会隐藏视频控制栏)

<iframe   src="https://www.youtube-nocookie.com/embed/fNb-DTEb43M?controls=0" frameborder="0" allowfullscreen></iframe>

【讨论】:

【参考方案9】:

自动播放仅适用于 /v/ 而不是 /embed/,因此将 src 更改为:

src="//www.youtube.com/v/qUJYqhKZrwA?autoplay=1&amp;showinfo=0&amp;controls=0"

【讨论】:

自动播放参数适用于我的 /embed/ 链接。

以上是关于您可以在不启用自动播放的情况下隐藏 YouTube 嵌入的控件吗?的主要内容,如果未能解决你的问题,请参考以下文章

我可以在不使用 Unity 的情况下在 Android VR 视图中添加像 youtube 这样的凝视控制功能吗?

在没有全屏的情况下在 UIWebView 中播放 Youtube 视频

嵌入式播放器在不清楚的情况下向部分用户显示“请点击此处在 YouTube 上观看此视频”

在嵌入式 YouTube 播放器中自动播放下一个视频

如何在不下载任何 .mp3 文件和更多文件的情况下播放音乐 discord.py

通过 URL 强制使用 YouTube 隐藏式字幕