Отключение встроенного видео Vimeo

На веб-сайте, который я строю, у меня есть встроенное видео Vimeo. Клиент должен сохранять звук на видео, очевидно, для людей, которые находят его на Vimeo. Однако для ее сайта звук просто раздражает. Поэтому мне нужно найти способ отключить звук в коде для встраивания. Я гуглил это, но не могу найти ничего разборчивого. Как вы можете видеть из моего кода ниже, я использовал команду autoplay в ссылке, которая, как я надеялся, могла бы сделать подобное, чтобы отключить звук.

    <iframe src="http://player.vimeo.com/video/4415083?  title=0&amp;byline=0&amp;portrait=0&amp;color=d01e2f&amp;autoplay=1" width="500" height="281"  frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>

Спасибо

11 ответов

В случае, если это кому-нибудь поможет, Vimeo добавил параметр 'background' для встраивания видео, который автоматически воспроизводит видео. В некоторых случаях это будет полезно, когда люди хотят отключить видео - это их пример:

<iframe src="https://player.vimeo.com/video/76979871?background=1" 
    width="500" height="281" frameborder="0" webkitallowfullscreen 
    mozallowfullscreen allowfullscreen></iframe>

Для не платящих участников

Вам просто нужно добавить muted параметр. Например:

<iframe src="https://vimeo.com/48400332?autoplay=1&loop=1&muted=1" ></iframe>

Для платных членов

По словам Вимео, background Параметр поддерживается только для видео, размещенных платными участниками.

Источник: https://help.vimeo.com/hc/en-us/articles/115004485728-Autoplaying-and-looping-embedded-videos

Вы будете использовать setVolume API в вашем Vimeo.. player.api('setVolume', 0);это будет так...

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
        <script src="//f.vimeocdn.com/js/froogaloop2.min.js"></script>
        <iframe id="vimeo_player" src="http://player.vimeo.com/video/4415083?title=0&amp;byline=0&amp;portrait=0&amp;color=d01e2f&amp;autoplay=1&player_id=vimeo_player" width="500" height="281"  frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
        <script>
        var iframe = $('#vimeo_player')[0],
            player = $f(iframe),
            status = $('.status');

            player.addEvent('ready', function() {
                player.api('setVolume', 0);
            });
        </script>

Похоже, что Vimeo предоставляет обновленную библиотеку, а синтаксис API немного отличается от старого (Froogaloop). Вот как отключить встроенное видео с помощью JS:

<!--Add the id attr to the iframe tag to use as a selector-->
<iframe id="embeddedVideo" src="http://player.vimeo.com/video/4415083? title=0&amp;byline=0&amp;portrait=0&amp;color=d01e2f&amp;autoplay=1" width="500" height="281"  frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>

<!--Include the Vimeo API Library-->
<script src="https://player.vimeo.com/api/player.js"></script>

<!--Select and manipulate your video-->
<script type="text/javascript">
    //Select the #embeddedVideo element
    var video = document.getElementById('embeddedVideo');

    //Create a new Vimeo.Player object
    var player = new Vimeo.Player(video);

    //When the player is ready, set the volume to 0
    player.ready().then(function() {
        player.setVolume(0);
    });
</script>

Надеюсь, это поможет всем, кто использует новую библиотеку. Документация находится в https://github.com/vimeo/player.js

Я попробовал примеры в ответах без удачи. После просмотра документации я заметил, что отсутствует параметр &player_id=IFRAME_ID, Может быть, что-то изменилось в API Vimeo, в любом случае у меня работает следующий пример:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="https://f.vimeocdn.com/js/froogaloop2.min.js"></script>
<iframe id="vimeo_player" src="//player.vimeo.com/video/4415083?api=1&player_id=vimeo_player&autoplay=1&loop=1&color=ffffff" width="1920" height="1080" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>

<script>
$(function() {
    var vimeo_iframe = $('#vimeo_player')[0];
    var player = $f(vimeo_iframe);

    player.addEvent('ready', function() {
        player.api('setVolume', 0);
    });
});
</script>

Так как большинство ответов здесь относятся к старым API Vimeo. Вот самый простой способ с новым API. Вы можете включить vimeo player.js из их CDN, или вы можете скачать его, или вы можете включить его из npm.

<script src="https://player.vimeo.com/api/player.js"></script>

или же

npm install @vimeo/player

тогда вы можете сделать следующее.

    <script>
    var iframe = document.querySelector('iframe');
    var player = new Vimeo.Player(iframe);

    player.setVolume(0);
  </script>

вот и все. И если вы используете угловой 2+,

import * as Vimeo from '@vimeo/player';

const iframe = e.target;
const player = new Vimeo(iframe);
player.setVolume(0);

здесь e.target - это событие $, которое будет передано из шаблона. Вероятно, это может быть событие iframe (load). Или вы можете использовать jquery для выбора iframe.

Я нашел способ сделать это. Вы запускаете видео без звука, чтобы оно воспроизводилось автоматически, а затем при первом обновлении времени вы устанавливаете громкость на 1.

var options = {
    id: 'video_id_here',
    width: 640,
    loop: false,
    muted: true,
    autoplay: true
};

var player = new Vimeo.Player('vimeo', options);

player.setVolume(0);

player.on('timeupdate', set_autoplay_volume );

function set_autoplay_volume(){
    player.setVolume(1);
    player.off('timeupdate', set_autoplay_volume );
}

Ответ @Gadss прекрасно работает, но я обнаружил, что вам нужно обновить iframe src, чтобы включить активацию API Vimeo. Просто включите api=1 после идентификатора vimeo.

Я также обнаружил, что по некоторым причинам это иногда не работает в Safari.

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <script src="//f.vimeocdn.com/js/froogaloop2.min.js"></script>
    <iframe id="vimeo_player" src="http://player.vimeo.com/video/4415083?api=1&title=0&amp;byline=0&amp;portrait=0&amp;color=d01e2f&amp;autoplay=1" width="500" height="281"  frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
    <script>
    var iframe = $('#vimeo_player')[0],
        player = $f(iframe),
        status = $('.status');

        player.addEvent('ready', function() {
            player.api('setVolume', 0);
        });
    </script>

Вы пытаетесь вставить ?muted=1 после ссылки в attribute src

Например

<iframe id="vimeo_player" src="https://player.vimeo.com/video/257992348?muted=1">

** Вот мое решение: 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', 'pink');
    } else {
      //unpause video
      video.vimeo("play");
      $(this).css('background', 'blue');
    }
  });

  //toggle mute/unmute
  $('#mute-unmute').click(function() {
    $(this).toggleClass('mute');
    if ($(this).hasClass('mute')) {
      //unmute video
  video.vimeo("setVolume", 1);
      $(this).css('background', 'green');

    } else {
      //mute video
  video.vimeo("setVolume", 0);
      $(this).css('background', 'red');
    }
  });

Потратил целую вечность, пытаясь, и ничего, казалось, не работало

Я просто хотел отключить автоигру Vimeo (громкость 0) с простыми элементами управления Play/Pause Mute/Unmute вместо их стандартных. (не стесняйтесь использовать иконки вместо временных цветов, которые я положил).

(Если вы хотите добавить элементы управления по умолчанию обратно, но не отключаете звук, удалите "?background=1". По умолчанию background = 1 установит video.vimeo("setVolume", 0) и скроет элементы управления, поэтому я также добавил отключение звука на загрузка без фона = 1 комплект).

Также обратите внимание: "Вам нужно будет работать на веб-сервере, а не открывать файл прямо в браузере. Ограничения безопасности JS не позволят API работать при локальном запуске".

Это единственный способ, которым он работал для меня: http://jsfiddle.net/87dsjL8q/108/

var iframe = document.getElementsByTagName('iframe')[0];
var player = $f( iframe );

 player.addEvent('ready', function() {
     player.api('setVolume', 20); 
 });
<iframe src="http://player.vimeo.com/video/4415083?muted=1;  title=0;byline=0;portrait=0;color=d01e2f;autoplay=1" width="500" height="281"  frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>

Вы можете просто дать "muted=1", чтобы видео было отключено... Chrome позволяет автоматически воспроизводить видео, которые отключены

Другие вопросы по тегам