html - La API play() de video en javascript no funciona en Safari hasta que cambio la preferencia de reproducción automática a 'Permitir toda la reproducción automática'
Estamos implementando un reproductor web que debería funcionar en todos los navegadores. Estamos configurando la fuente de video a través de JavaScript y llamando a play() para reproducir el video en el navegador.
Describimos el elemento de video como se indica a continuación.
<video id="videoID" preload="none" tabindex="1"></video>
Esto está funcionando bien en Chrome, pero el video no se reproduce en Safari (versión: 11.0.3) y lanza un error de Rechazo de Promesa No Manejado como se indica a continuación.
Rechazo de Promesa No Gestionado: NotAllowedError (Excepción DOM 35): La solicitud no está permitida por el agente de usuario o la plataforma en el contexto actual, posiblemente porque el usuario denegó el permiso
Si cambio la configuración de reproducción automática en Safari a 'Permitir toda la reproducción automática', el video se reproduce correctamente sin ningún problema.
Intenté añadiendo también el atributo autoplay al elemento Video, pero no funciona.
Se espera que el usuario no tenga que hacer nada para reproducir el video. Cuando el usuario visite la URL, el video debería reproducirse (con sonido) automáticamente sin ninguna acción por parte del usuario. ¿Alguien podría decirme si hay alguna manera de lograr esto en JavaScript?
Respuesta #1
Hasta donde sé, esto no se puede lograr solo con Javascript. En Safari (sin la configuración que mencionaste), un video solo puede iniciarse mediante una interacción del usuario. Esto es para evitar que los videos se reproduzcan automáticamente en contra de la voluntad del usuario.