Safari en iOS tiene una política que permite reproducir medios solo cuando la ejecución actual de javascript comienza con una acción del usuario, generalmente un evento de clic.Lanzamiento de un reproductor iframe de YouTube a través de javascript (externo) en iOS
Sin embargo, cuando hay que adjuntar un controlador a un botón que dispara someYoutubePlayer.playVideo()
y el usuario clic en este botón esto es lo que realmente sucede:
- un evento
click
se dispara en la ventana principal de la página - el método
playVideo
dispara unpostMessage
en el youtube<iframe />
- dentro de la iframe un evento
message
se dispara - manejador de los eventos
message
disparadomVideo.play()
la que se producirá un error, ya que el evento actual ya no esclick
, peromessage
, porque estamos en eliframe
ventana interior.
¿Alguien sabe cómo superar esto y activar la reproducción desde un evento de clic externo?
¿Ya ha encontrado una solución? Esto es tan frustrante: \ – iMoses