Estoy tratando de forzar la reproducción automática cuando el video de YouTube esté listo.
<html> <body> <div id="player"></div> <br/> <button id="botaoPlay" onclick="playMusic()">play</button> <script> var tag = document.createElement('script'); tag.src = "https://www.youtube.com/iframe_api"; var firstScriptTag = document.getElementsByTagName('script')[0]; firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); var player; var timeout = null; function onYouTubeIframeAPIReady() { player = new YT.Player('player', { height: '360', width: '640', videoId: '8t3EHHhkC34', playerVars: { autoplay: 1 , enablejsapi: 1, playsinline: 1, origin: 'http://localhost' }, events: { 'onReady': onPlayerReady, 'onStateChange': onPlayerStateChange, 'onError': onPlayerError } }); } // 4. The API will call this function when the video player is ready. function onPlayerReady(event) { event.target.setVolume(65); if(!timeout) timeout = setInterval(playMusic, 1000); } function playMusic() { if (player) { player.playVideo(); } } function onPlayerStateChange(event) { console.log("status changed: " + player.getPlayerState()); if( player.getPlayerState() == 1 ){ clearInterval(timeout); } } </script> </body> </html>Pero el video solo comienza si hago clic en el botón... ¿cómo puedo iniciar el video? En su lugar, intenté llamar a playVideo() en el intervalo, llamar a button.click() pero tampoco funcionó, solo si hago clic con el mouse en el botón. ¿Cómo puedo iniciar mi video sin hacer clic en el botón?