Pasé mucho tiempo tratando de descubrir por qué el video incrustado como aquí:
<video height="256" loop autoplay muted controls id="vid">
<source type="video/mp4" src="video_file.mp4"></source>
<source type="video/ogg" src="video_file.ogg"></source>
</video>
comienza a reproducirse automáticamente una vez que la página se carga en Firefox pero no puede reproducirse automáticamente en navegadores basados en Webkit. Esto solo sucedió en algunas páginas aleatorias. Hasta ahora no pude encontrar la causa. Sospecho que algunas etiquetas no cerradas o JS extenso creado por editores de CMS.
javascript
html
google-chrome
safari
webkit
Adam Bubela
fuente
fuente
Respuestas:
La mejor solución que pude obtener fue agregar este código justo después de
</video>
... no es bonito pero de alguna manera funciona.
ACTUALIZACIÓN Recientemente, muchos navegadores solo pueden reproducir automáticamente los videos con el sonido apagado, por lo que también deberá agregar un
muted
atributo a la etiqueta de videofuente
$("videoID").get(0).play();
stackoverflow.com/questions/4646998/…$("video[autoplay]").each(function(){ this.play(); });
Después de usar jQuery
play()
o DOM maniupulation como lo sugieren las otras respuestas, todavía no funcionaba (el video no se reproducía automáticamente) en Chrome para Android (Versión 56.0).Según esta publicación en developers.google.com , desde Chrome 53, el navegador respeta la opción de reproducción automática, si el video está silenciado .
Por lo tanto, el uso de
autoplay muted
atributos en la etiqueta de video permite que el video se reproduzca automáticamente en los navegadores Chrome desde la versión 53.Extracto del enlace de arriba:
fuente
muted
eautoplay
hizo el truco. ¡Gracias!Sucede que a Safari y Chrome en el escritorio no les gusta la manipulación DOM alrededor de la etiqueta de video. No activarán el orden de reproducción cuando se establezca el atributo de reproducción automática, incluso si el evento de reproducción se ha activado cuando el DOM alrededor de la etiqueta de video ha cambiado después de la carga inicial de la página. Básicamente tuve el mismo problema hasta que eliminé un .wrap () jQuery alrededor de la etiqueta del video y luego se reprodujo automáticamente como se esperaba.
fuente
.get(0)
o simplemente$('#vid')[0].play()
Puedes consultar aquí
así que solo agrega silenciado
fuente
Para mí, el problema era que era
muted
necesario agregar el atributo dentro de lavideo
etiqueta. Es decir:fuente
Chrome no permite la reproducción automática de video con sonido activado, así que asegúrese de agregar un
muted
atributo a lavideo
etiqueta como estefuente
Ahora tengo el mismo problema con mi video
Después de la búsqueda, he encontrado una solución:
Si configuro los atributos de "precarga" en "verdadero", el video comenzará normalmente
fuente
Agregar el siguiente código en la parte inferior de la página funcionó para mí. No sé por qué funciona :(
fuente
fuente
var video = document.querySelector('video'); video.muted = true; video.play()
Solo esta solución me ayudó,
<video autoplay muted ...>...</video>
no funcionó ...fuente
Ninguna de las otras respuestas funcionó para mí. Mi solución consistía en activar un clic en el video; hacky (debido al tiempo de espera que se necesita) pero funciona bien:
fuente
Recientemente abordamos un problema similar con un video incrustado y descubrimos que la reproducción automática y los atributos silenciados no eran suficientes para nuestra implementación.
Agregamos un tercer atributo "playsinline" al código y solucionó el problema para los usuarios de iOS.
Esta solución es específica para los videos que se reproducirán en línea. De https://webkit.org/blog/6784/new-video-policies-for-ios/ :
En iPhone, los elementos ahora podrán reproducirse en línea y no entrarán automáticamente en modo de pantalla completa cuando comience la reproducción. los elementos sin atributos de playinline seguirán requiriendo el modo de pantalla completa para reproducir en iPhone. Al salir de la pantalla completa con un gesto de pellizco, los elementos sin playinline continuarán jugando en línea.
fuente
Política de reproducción automática actualizada de Google. La reproducción automática solo funciona en modo silencio. Consulte el enlace https://developers.google.com/web/updates/2017/09/autoplay-policy-changes
fuente
Prueba esto:
Así es como lo hago normalmente. loop, controles y reproducción automática no requieren un valor, son atributos booleanos.
fuente
Esto se debe a que ahora Chrome está impidiendo la reproducción automática en el video html5, por lo que por defecto no permitirán la reproducción automática. para que podamos cambiar esta configuración usando la configuración de la bandera de Chrome. Esto no es posible para el caso normal, así que he encontrado otra solución. esto funciona perfectamente ... (agregar preload = "auto")
fuente
Pasé dos horas probando todas las soluciones mencionadas anteriormente.
Esto es lo que finalmente funcionó para mí:
fuente
En el iPhone de safari cuando la mantequilla es baja y el iPhone está en modo de bajo consumo , no se reproducirá automáticamente, incluso si tiene los siguientes atributos: reproducción automática, bucle, silenciado, reproducción en línea configurado en su etiqueta html de video.
Recorrer que encontré que trabajar es tener un evento de gesto de usuario para activar la reproducción de video:
Puede leer más sobre el gesto del usuario y las Políticas de video para iOS en el sitio webkit:
https://webkit.org/blog/6784/new-video-policies-for-ios/
fuente
Tuve un caso en el que tenía algo que ver con el orden de los diferentes tipos de archivos. Intente cambiarlo y vea si eso ayuda.
fuente
Comencé reproduciendo todos los videos visibles, pero los teléfonos viejos no funcionaban bien. Así que en este momento reproduzco el video más cercano al centro de la ventana y detengo el resto. Vanilla JS. Puedes elegir qué algoritmo prefieres.
fuente
Resolví el mismo problema con
Debes iniciar los videos después de que se haya mostrado la página.
fuente
Intenta cambiar
autoPlay
porautoplay
.Parece ser sensible a mayúsculas y minúsculas a veces. Muy extraño porque funcionó
autoplay
para mí, pero solo si incluíacontrols
fuente