【问题标题】:Vimeo embed auto mute on loadVimeo 嵌入加载时自动静音
【发布时间】:2015-09-17 16:13:31
【问题描述】:

我有一个 vimeo 嵌入式视频,但似乎无法在加载时集成静音。

这是我的视频代码

<div id="vimeo"> </div> 

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script src="https://f.vimeocdn.com/js/froogaloop2.min.js"></script>

和使用的js

 <script>
// URL of the video 
        var videoUrl = 'http://www.vimeo.com/76979871?api=1?player_Id=vimeoyo';

        var endpoint = 'http://www.vimeo.com/api/oembed.json';
        var callback = 'embedVideo';
        var url = endpoint + '?url=' + encodeURIComponent(videoUrl)+ '&autoplay=true' + '&callback=' + callback + '&width=420';
        function embedVideo(video) {
            document.getElementById('vimeo').innerHTML = unescape(video.html);
        }
        function init() {
            var js = document.createElement('script');
            js.setAttribute('type', 'text/javascript');
            js.setAttribute('src', url);
            document.getElementsByTagName('head').item(0).appendChild(js);
            var player = 'vimeoyo';
            player.api('setVolume', 0);
        }


        window.onload = init;


  </script>

我还有一个问题是视频不是 iframe。

编辑:有一个使用 iframe 静音的答案。这里

Muting an embedded vimeo video

但是在使用这个小提琴测试之后,它似乎也没有使视频静音。 http://jsfiddle.net/serversides/gfcpjLsy/

【问题讨论】:

  • 您是否尝试在js 文件中为player.api('setVolume', 0); 播放不同的值?
  • 我已经尝试过了,但即使我在视频 URL 中输入了 ?api=1,我也无法让任何 api 工作。
  • 当涉及到froogaloop 时,有两件重要的事情:给你的iframe 一个id,并将它作为player_id=%%ID%% 添加到Vimeo src url 并且还包括api=1该 URL 字符串。另外,你的 iframe 在哪里?它不是用 JS 添加的,也不是在你的 HTML 中添加的...
  • JSFiddle 不会加载 oEmbed 示例的代码。然而,在最基本的层面上有这个jsfiddle.net/serversides/gfcpjLsy 这是取自另一个 SO 问题,但它也没有静音。

标签: javascript html vimeo vimeo-api vimeo-player


【解决方案1】:

由于您是从 vimeo api 动态创建 iframe,因此您应该只在加载 iframe 后设置音量。因此,在您的embedVideo 函数中,将 HTML 插入到您的div 后,您必须获得div 的第一个孩子(它是iframe),然后向它添加一个onload 事件。

加载iframe后,必须使用froogaloop的$f函数将iframe封装到它的库中,然后可以使用api方法将音量设置为零。

在您的示例中,您试图在 string 中调用 api 方法,但它永远不会起作用。

function embedVideo(video) {
  var div = document.getElementById('vimeo');
  div.innerHTML = unescape(video.html);

  var ifr = div.firstChild;
  ifr.addEventListener('load', function(e) {
    var player = $f(ifr);
    player.api('setVolume', 0);
  });
}

function init() {
  var js = document.createElement('script');
  js.setAttribute('type', 'text/javascript');
  js.setAttribute('src', url);
  document.getElementsByTagName('head').item(0).appendChild(js);
}

我创建了一个plnkr for you,您的示例正在运行。

【讨论】:

  • 谢谢你太棒了!我绞尽脑汁想弄清楚为什么它没有静音!
【解决方案2】:

**这是我的解决方案:http://jsfiddle.net/jakeoblivion/phytdt9L/5/

(您将需要自己的播放/暂停静音/取消静音图标)

  //load video muted
  var video = $("#myvideo");
  video.vimeo("play");
  video.vimeo("setVolume", 0);

    //toggle play/pause
  $('#play-pause').click(function() {
    $(this).toggleClass('play');
    if ($(this).hasClass('play')) {
      //pause video
      video.vimeo("pause");
      $(this).css('background', 'url("http://unclebarts.co.uk/wp-content/themes/bungabunga_bootstrap/img/video-controls/play.png") no-repeat');
    } else {
      //unpause video
      video.vimeo("play");
      $(this).css('background', 'url("http://unclebarts.co.uk/wp-content/themes/bungabunga_bootstrap/img/video-controls/pause.png") no-repeat');
    }
  });

  //toggle mute/unmute
  $('#mute-unmute').click(function() {
    $(this).toggleClass('mute');
    if ($(this).hasClass('mute')) {
      //unmute video
  video.vimeo("setVolume", 1);
      $(this).css('background', 'url("http://unclebarts.co.uk/wp-content/themes/bungabunga_bootstrap/img/video-controls/volume.png") no-repeat');

    } else {
      //mute video
  video.vimeo("setVolume", 0);
      $(this).css('background', 'url("http://unclebarts.co.uk/wp-content/themes/bungabunga_bootstrap/img/video-controls/mute.png") no-repeat');
    }
  });

花了很长时间尝试,但似乎没有任何效果。

我只是想让 Vimeo 自动播放静音(音量 0),使用简单的播放/暂停静音/取消静音控件,而不是默认控件。

(如果要添加默认控件但保持静音,请删除“?background=1”。默认情况下,background=1 将设置 video.vimeo("setVolume", 0) 并隐藏控件,所以我也添加了没有设置 background=1 的加载静音)。

另请注意:“您需要在网络服务器上运行,而不是直接在浏览器中打开文件。Flash 和 JS 安全限制将阻止 API 在本地运行时工作。”

http://www.taxidermyart.co.uk

【讨论】:

    猜你喜欢
    • 2014-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-09
    • 2011-09-08
    • 1970-01-01
    • 2013-03-15
    相关资源
    最近更新 更多