1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| "use strict";
const req = new XMLHttpRequest();
req.responseType = "arraybuffer";
req.onerror = () => {
console.warn("Échec du chargement de laudio");
};
// Note : je te conseille de coder un mini système de cache pour éviter
// davoir à refaire la requête et le décodage à chaque fois que tu veux
// lire le son.
req.onload = () => {
const acx = new AudioContext();
acx.decodeAudioData(req.response, (decodedData) => {
// crée un « nud dentrée » dans le contexte audio
const node = acx.createBufferSource();
// nourrit le nud avec les données décodées
node.buffer = decodedData;
// connecte le nud à la sortie audio
node.connect(acx.destination);
// joue le son
node.start(0);
}, (error) => {
console.warn("Erreur lors du décodage", error);
});
};
req.open("GET", "audio.wav");
req.send(); |
Partager