Jouez le fichier son .wav codé dans base64 avec javascript

Je suis capable de jouer du son avec javascript par le biais de ce qui suit,

var snd = new Audio('sound.wav'); snd.play(); 

Cela joue le son requis, mais parfois il se charge lentement ou peut-être même pas du tout chargé, j'ai encodé le son dans la base 64 et j'ai essayé de le lire de cette façon.

  var splash = { prefix: "data:audio/wav;base64,", sound: [ "*base64 string here*" ] }; var snd = new Audio(splash); snd.play(); 

Mais le son ne joue pas, y a-t-il un moyen de le faire?

Cela ne ressemble pas à la manière correcte d'utiliser le constructeur audio pour HTMLAudioElement / <audio> .

Un léger ajustement

 var snd = new Audio("data:audio/wav;base64," + base64string); snd.play(); 

Si cela fonctionne dans la console, mais pas dans le script, il se peut que les ordures soient collectées, dans ce cas, alors, cela restera

 var Sound = (function () { var df = document.createDocumentFragment(); return function Sound(src) { var snd = new Audio(src); df.appendChild(snd); // keep in fragment until finished playing snd.addEventListener('ended', function () {df.removeChild(snd);}); snd.play(); return snd; } }()); // then do it var snd = Sound("data:audio/wav;base64," + base64string); 
 var snd = new Audio("data:audio/x-wav;base64, <URI data>"); snd.play(); 

Il n'est pas nécessaire de déclarer splash comme variable d'objet.

La conversion Base64 se fait facilement à partir de: https://dopiaza.org/tools/datauri/index.php