Silenciar un video vimeo incrustado

En un sitio web que estoy construyendo, tengo un video vimeo incrustado. El cliente necesita mantener el sonido en el video obviamente para las personas que lo encuentran en vimeo. Sin embargo, para su sitio web el sonido es simplemente molesto. Así que tengo que encontrar la forma de silenciar el audio dentro del código para la inserción. Lo busqué en Google pero no puedo encontrar nada legible. Como puede ver en mi código a continuación, he usado el comando de reproducción automática dentro del enlace que esperaba poder hacer algo similar para silenciar el sonido.

 

Gracias

En caso de que ayude a alguien, Vimeo ha agregado un parámetro de “fondo” para incrustar videos, que reproduce videos de forma automática. En algunos casos, será útil cuando las personas quieran silenciar videos: este es su ejemplo:

  

setVolume api en tu vimeo .. player.api('setVolume', 0); será así …

     

Probé los ejemplos en las respuestas sin suerte. Después de revisar la documentación noté que falta el parámetro &player_id=IFRAME_ID . Tal vez algo cambió en la API de Vimeo, de todos modos el siguiente ejemplo funciona para mí:

     

Parece que Vimeo proporciona una biblioteca actualizada, y la syntax de la API es un poco diferente de la anterior (Froogaloop). A continuación, se explica cómo silenciar un video incrustado con JS:

       

Espero que esto ayude a cualquiera que esté usando la nueva biblioteca. La documentación está en vimeo / player.js

Dado que la mayoría de las respuestas aquí se refieren a la API anterior de Vimeo. Aquí está la manera más simple con la nueva API. Puede incluir vimeo player.js desde su CDN o puede descargarlo o puede incluirlo desde npm.

  

o

npm install @ vimeo / player

entonces puedes hacer lo siguiente.

   

Eso es. Y si estás usando angular 2+,

 import * as Vimeo from '@vimeo/player'; const iframe = e.target; const player = new Vimeo(iframe); player.setVolume(0); 

aquí e.target es $ event que se pasará de la plantilla. Probablemente podría ser un evento de iframe (carga). O puede ser que usted puede usar jquery para seleccionar iframe.

Para miembros que no pagan

Solo necesita agregar el parámetro muted . P.ej:

  

Para miembros pagos

Según Vimeo, el parámetro de background solo se admite para videos alojados por miembros pagos .

Fuente: https://help.vimeo.com/hc/en-us/articles/115004485728-Autoplaying-and-looping-embedded-videos

La respuesta de @Gadss funciona muy bien, pero descubrí que necesitas actualizar el iframe src para incluir la activación de la API de Vimeo. Simplemente incluya api = 1 después de la identificación de vimeo.

También descubrí que a veces esto no funciona en Safari por algún motivo.

     

** Aquí está mi solución: http://jsfiddle.net/jakeoblivion/phytdt9L/5/

(Necesitará sus propios icons de reproducción / pausa para silenciar / activar el sonido)

  //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'); } }); 

Pasó siglos intentando y nada parecía funcionar.

Solo quería silenciar el autoplay de Vimeo (volumen 0) con los simples controles Reproducir / Pausa Silenciar / Activar, en lugar de los predeterminados. (Siéntete libre de usar icons en lugar de los colores temporales que pongo).

(Si desea volver a agregar los controles predeterminados pero mantenerlos en silencio, elimine “? background = 1”. Por defecto background = 1 configurará video.vimeo (“setVolume”, 0) y ocultará los controles, por lo que también agregué el silenciador en cargar sin el fondo = 1 conjunto).

También tenga en cuenta: “Deberá estar ejecutándose en un servidor web en lugar de abrir el archivo directamente en su navegador. Las restricciones de seguridad de JS evitarán que la API funcione cuando se ejecute localmente”.

Esta es la única forma en que funcionó para mí: http://jsfiddle.net/87dsjL8q/108/

 var iframe = document.getElementsByTagName('iframe')[0]; var player = $f( iframe ); player.addEvent('ready', function() { player.api('setVolume', 20); });