web-dev-qa-db-fra.com

Tentative bloquée de créer un WebMediaPlayer car il y a trop de webMediaPlayers déjà existant

Nous travaillons sur un type de chose de travail audio numérique dans le navigateur. Nous devons travailler avec plusieurs fichiers audio dans un onglet. Nous utilisons new Audio(audioUrl) Pour pouvoir jouer à l'audio dans notre propre mélangeur audio. Cela a travaillé pour nous jusqu'à présent.

Avec la dernière version de Chrome (92), nous avons le problème dans lequel l'extrait de code ci-dessus provoque l'erreur suivante:

[Intervention] Blocked attempt to create a WebMediaPlayer as there are too many WebMediaPlayers already in existence. See crbug.com/1144736#c27

Je ne peux pas accéder au lien de bogue fourni, dit l'autorisation refusée. Et existe-t-il une solution de contournement suggérée pour gérer cela?

Mise à jour : J'ai quitté l'utilisation de HTMLAudioElement à AudioBufferSourceNode. On dirait que la seule solution simple que possible Chrome équipe discute de leur temps de les limiter de toute façon. Remarque : Nous pourrions avoir besoin de plus de 1000 clips audio à lire. Ceci est dans Référence au fil de discussion du chrome où ils vont augmenter le nombre de webmediaplayers à 1000 lors de la prochaine version du 5 août 2021.

22
Nasik Shafeek

Ouais moi aussi, c'est ce que j'ai brisé mon jeu, c'est ce que j'ai trouvé comme une solution de contournement, j'espère que cela vous aidera de manière moyenne:

function playSound(  ) {
    var jump_sound = new Audio("./jump.mp3");
    jump_sound.play();

    jump_sound.onended = function(){
        this.currentSrc = null;
        this.src = "";
        this.srcObject = null;
        this.remove();
    };
}

Remarque: il bloque toujours s'il y a trop de son simultané, mais avec ce code en place, le blocage est temporaire.

2
PauAI