web-dev-qa-db-fra.com

Comment gérer DOMException Uncaught (promis): La demande play () a été interrompue par un appel à pause ()

Ci-dessous se trouve mon code en page aspx pour permettre la lecture de fichiers audio au format wav dans le navigateur, mais avec mon code actuel, je ne parviens pas à lire les fichiers audio wav dans le navigateur chrome, mais cela fonctionne dans mozilla firefox.Comment puis-je gérer cette exception? 

   <script>

            window.onload = function () { document.getElementById("audio").play(); }
            window.addEventListener("load", function () { document.getElementById("audio").play(); });
        </script>
<body>
      <audio id='audio' controls autoplay>
    <source src="Sounds/DPM317.wav" type="audio/wav" />
    Your browser does not support the audio element.
    </audio>
</body>
10
user7076604

Je ne sais pas si cela est toujours d'actualité pour vous, mais je laisse tout de même mon commentaire alors cela aidera peut-être quelqu'un d'autre .. J'ai le même problème et la solution proposée par @dighan sur bountysource.com/issues/ résolu pour moi.

Alors voici le code qui a résolu mon problème:

var media = document.getElementById("YourVideo");
const playPromise = media.play();
if (playPromise !== null){
    playPromise.catch(() => { media.play(); })
}

Il y a toujours une erreur dans la console, mais au moins, la vidéo est en cours de lecture :)

5
Sharpey

Pour Chrome, ils ont modifié la stratégie de lecture automatique. Vous pouvez donc lire à ce sujet: https://developers.google.com/web/updates/2017/09/autoplay-policy-changes }

var promise = document.querySelector('video').play();

if (promise !== undefined) {
     promise.then(_ => {
     // Autoplay started!
 }).catch(error => {
    // Autoplay was prevented.
    // Show a "Play" button so that user can start playback.
  });
}
4

Essayez d'utiliser un rappel comme celui-ci avec le bloc catch.

document.getElementById("audio").play().catch(function() {
    // do something
});
3
zapping
  1. Toutes les nouvelles vidéos prises en charge par le navigateur doivent être lues automatiquement avec le son en sourdine uniquement. 

<video autoplay muted="muted" loop id="myVideo"> <source src="https://w.r.glob.net/Coastline-3581.mp4" type="video/mp4"> </video>

Quelque chose comme ça 

  1. L'URL de la vidéo doit correspondre au statut SSL si votre site fonctionne avec https. L'URL de la vidéo doit également être en https et identique pour HTTP.
0
Shobhit Verma