O som é reproduzido em todas as vezes que o vídeo é reproduzido no Chrome
-
27-09-2019 - |
Pergunta
No Chrome (7.0.517.44), estou usando o <video>
Tag e o áudio só tocarão todas as outras vezes O vídeo é reproduzido.
Por que o áudio nem sempre está jogando junto com o vídeo?
Na página:
<div id="VideoShow">
<video id="VideoPlay" width=800 height=600></video>
</div>
Ao clicar neste JS, é executado.
function playVideo(videoName) {
$("#VideoShow").fadeIn(300);
var Vid = document.getElementsByTagName('video')[0];
Vid.src = videoName;
Vid.play();
Vid.addEventListener('ended', function(e) {
closeVideo();
}, false);
}
function closeVideo() {
var Vid = document.getElementsByTagName('video')[0];
Vid.removeEventListener('ended', arguments.callee, false);
Vid.pause();
$("#VideoShow").fadeOut(300);
}
Solução
Eu tive um problema muito semelhante com o <audio>
tag recentemente. Embora eu não tenha conseguido determinar a causa real, fui capaz de contornar o problema removendo o velho <audio>
elemento do DOM e substituindo -o por um elemento idêntico imediatamente antes de cada chamada para reproduzir ().
Outras dicas
Continuo encontrando inconsistências com o comportamento desses elementos.
Você já tentou esperar para executar o método .Play () até depois de receber um pode jogar ou CanPlaythrough evento?
Pode valer a pena um tiro.