YouTube:如何在静音的情况下呈现嵌入视频

Posted

技术标签:

【中文标题】YouTube:如何在静音的情况下呈现嵌入视频【英文标题】:YouTube: How to present embed video with sound muted 【发布时间】:2016-05-04 19:57:17 【问题描述】:

我正在尝试嵌入一个静音的视频,但我不知道它是如何工作的。

目前我正在使用这个但不起作用:

<iframe src="https://www.youtube.com/embed/uNRGWVJ10gQ?rel=0&amp;autoplay=1"   frameborder="0" allowfullscreen></iframe>

你们中的任何人都知道我怎样才能完成这项工作吗?

【问题讨论】:

【参考方案1】:

更新

&amp;mute=1 添加到您的网址末尾。

您的新代码将是:

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

【讨论】:

不再起作用了。使用 youtube api (***.com/a/41045251/353752) @FrankConijn,更简单的解决方案?答案都是一样的,但是这个有一个例子,不管谁是第一个,有了例子,事情就变得更容易了。 @ICGDEVS — 你的评论没有任何意义。查看编辑日期和我的评论 - 在另一个答案下,并没有说“更容易”。 我的错,对不起。无论如何,您在我之前的评论已经消失,所以它不再有意义。【参考方案2】:

对我来说,使用 &amp;autoplay=1&amp;mute=1

【讨论】:

从一开始就应该这么简单。是的,这对我也有用。 确实就这么简单:加&amp;amp;mute=1【参考方案3】:

接受的答案对我不起作用,我关注 this tutorial 反而成功了。

基本上:

<div id="muteYouTubeVideoPlayer"></div>
<script async src="https://www.youtube.com/iframe_api"></script>
<script>
 function onYouTubeIframeAPIReady() 
  var player;
  player = new YT.Player('muteYouTubeVideoPlayer', 
    videoId: 'YOUR_VIDEO_ID', // YouTube Video ID
    width: 560,               // Player width (in px)
    height: 316,              // Player height (in px)
    playerVars: 
      autoplay: 1,        // Auto-play the video on load
      controls: 1,        // Show pause/play buttons in player
      showinfo: 0,        // Hide the video title
      modestbranding: 1,  // Hide the Youtube Logo
      loop: 1,            // Run the video in a loop
      fs: 0,              // Hide the full screen button
      cc_load_policy: 0, // Hide closed captions
      iv_load_policy: 3,  // Hide the Video Annotations
      autohide: 0         // Hide video controls when playing
    ,
    events: 
      onReady: function(e) 
        e.target.mute();
      
    
  );
 

 // Written by @labnol 
</script>

【讨论】:

您还可以将mute: 1 添加为额外的playerVar,这样就不需要onReady 事件。请务必在autohide: 0 之后添加一个逗号,并注意您不能使用mute: 0,因为这会被视为“垃圾邮件”。另请注意,一旦您在刷新页面时明确将视频静音,该视频仍将被静音。 有谁知道如何对页面上的多个视频使用此方法?我尝试在每个实例中更改divid,但只显示第一个视频。同一页面上的所有其他视频均不可见。【参考方案4】:

这很容易。只需将 mute=1 添加到 iframe 的 src 参数即可。 示例:

<iframe src="https://www.youtube.com/embed/uNRGWVJ10gQ?controls=0&mute=1&showinfo=0&rel=0&autoplay=1&loop=1&playlist=uNRGWVJ10gQ" frameborder="0" allowfullscreen></iframe>

【讨论】:

【参考方案5】:

&lt;iframe  src="https://www.youtube.com/embed/7cjVj1ZyzyE?autoplay=1&amp;loop=1&amp;playlist=7cjVj1ZyzyE&amp;mute=1" frameborder="0"  allowfullscreen&gt;&lt;/iframe&gt;

静音=1

【讨论】:

请补充说明How to answer【参考方案6】:
<iframe   src="https://www.youtube-nocookie.com/embed/ObHKvS2qSp8?list=PLF8tTShmRC6uppiZ_v-Xj-E1EtR3QCTox&autoplay=1&controls=1&loop=1&mute=1" frameborder="0" allowfullscreen></iframe>



<iframe   src="https://www.youtube.com/embed/ObHKvS2qSp8?list=PLF8tTShmRC6uppiZ_v-Xj-E1EtR3QCTox&autoplay=1&controls=1&loop=1&mute=1" frameborder="0" allowfullscreen></iframe>

【讨论】:

截至 2017 年,这是正确的,应该被接受。【参考方案7】:

我要感谢在该区域发布以下代码的朋友。我终于解决了一个我整天不得不处理的问题。

<div id="muteYouTubeVideoPlayer"></div>
                            <script async src="https://www.youtube.com/iframe_api"></script>
                            <script>
                                function onYouTubeIframeAPIReady() 
                                    var player;
                                    player = new YT.Player('muteYouTubeVideoPlayer', 
                                        videoId: 'xCIBR8kpM6Q', // YouTube Video ID
                                        width: 1350, // Player width (in px)
                                        height: 500, // Player height (in px)
                                        playerVars: 
                                            autoplay: 1, // Auto-play the video on load
                                            controls: 0, // Show pause/play buttons in player
                                            showinfo: 0, // Hide the video title
                                            modestbranding: 0, // Hide the Youtube Logo
                                            loop: 1, // Run the video in a loop
                                            fs: 0, // Hide the full screen button
                                            cc_load_policy: 0, // Hide closed captions
                                            iv_load_policy: 3, // Hide the Video Annotations
                                            autohide: 0, // Hide video controls when playing
                                            rel: 0 
                                        ,
                                        events: 
                                            onReady: function(e) 
                                                e.target.setVolume(5);
                                            
                                        
                                    );
                                

                                // Written by @labnol

                            </script>

【讨论】:

【参考方案8】:

来源:https://developers.google.com/youtube/iframe_api_reference

   <div id="player"></div>
    <script>

          var tag = document.createElement('script');
          tag.src = "https://www.youtube.com/iframe_api";
          var firstScriptTag = document.getElementsByTagName('script')[0];
          firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

          var player;
          function onYouTubeIframeAPIReady() 
            player = new YT.Player('player', 
              height: '720',
              width: '1280',
              videoId: 'M7lc1UVf-VE',
              playerVars :'autoplay':1,'loop':1,'playlist':'M7lc1UVf-VE','vq':'hd720',
              events: 
                'onReady': onPlayerReady,
                'onStateChange': onPlayerStateChange
              
            );
          

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

          var done = false;
          function onPlayerStateChange(event) 
            if (event.data == YT.PlayerState.PLAYING && !done) 
        //      setTimeout(stopVideo, 6000);
                      done = true;
            
               event.target.setVolume(0);
          
    </script>

【讨论】:

【参考方案9】:

只需传递mute=1

例如:

<iframe id="myVideo" src="https://www.youtube.com/embed/k0DN-BZrM4o?rel=0&amp;autoplay=1;mute=1"   frameborder="0" allowfullscreen></iframe>

【讨论】:

【参考方案10】:

也在寻找解决方案,但我不包括通过 iframe,我的链接到 images/video.mp4 - 找到了这个 https://www.w3schools.com/tags/att_video_muted.asp - 我只是添加了

【讨论】:

【参考方案11】:
<iframe   src="https://www.youtube.com/embed/ULzr7JsFp0k?list=PLF8tTShmRC6vp9YTjkVdm1qKuTimC6K3e&rel=0&amp;autoplay=1&controls=1&loop=1" rel=0&amp frameborder="0" allowfullscreen></iframe>

【讨论】:

请详细说明其工作原理和原因。只贴一个代码 sn-p 对新手没有帮助。 这只是问题所在!【参考方案12】:

试试这个

<iframe   src="http://www.youtube.com/embed/
HeQ39bLsoTI?autoplay=1&cc_load_policy=1" volume="0" frameborder="0"
allowfullscreen></iframe>

别忘了写volume="0"

【讨论】:

以上是关于YouTube:如何在静音的情况下呈现嵌入视频的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有 Youtube 或 Vimeo 的情况下嵌入视频?

自定义静音/取消静音按钮Youtube API

如何在用户不触摸 UIWebView 本身的情况下启动 YouTube 视频?

没有静音的 HTML 视频自动播放(或者 youtube 是如何做到的)?

如何跟踪嵌入视频(youtube、vimeo 等)的点击事件? (跟踪播放次数)

如何自动播放静音的 Youtube 视频 (IFrame API)?