【スニペット】JSからWebSoundAPIで音を再生
鳴らす音をソースから取得して、取得出来たらコールバックで再生関数を呼ぶ。
/**
* doPlaySound
* @param {String} url sound-source
*/
const doPlaySound = function(url) {
window.AudioContext = window.AudioContext || window.webkitAudioContext;
let context = new AudioContext();
let req = new XMLHttpRequest();
req.responseType = 'arraybuffer';
req.onreadystatechange = function() {
if (req.readyState === 4) {
if (req.status === 0 || req.status === 200) {
context.decodeAudioData(req.response, function(buffer) {
playSound(buffer);
});
}
}
};
req.open('GET', url, true);
req.send('');
};
コールバックから呼ばれる再生関数
/**
* playSound (helper function)
* @param {AudioBuffer} buffer sound source
*/
const playSound = function(buffer) {
window.AudioContext = window.AudioContext || window.webkitAudioContext;
let context = new AudioContext();
let source = context.createBufferSource();
source.buffer = buffer;
source.connect(context.destination);
source.start(0);
};
使い方
doPlaySound('sound/1.wav');
毎度ご覧頂き感謝です♪ お布施をしていただくと、僕の喫茶店での執筆時のコーヒー代になります。とても助かります。