Skip to content

Instantly share code, notes, and snippets.

@kuu
Created February 19, 2014 04:19
Show Gist options
  • Save kuu/9086018 to your computer and use it in GitHub Desktop.
Save kuu/9086018 to your computer and use it in GitHub Desktop.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=yes" />
</head>
<body>
<div id="Message"></div>
<script>
document.addEventListener("DOMContentLoaded", function() {
var tMessage = document.getElementById('Message');
var AudioContext = window.AudioContext || window.webkitAudioContext;
if (!AudioContext) {
tMessage.innerHTML = 'Web Audio API is not supported.';
return;
}
var tContext = new AudioContext();
var tBGM;
var tXHR = new XMLHttpRequest();
tXHR.open('GET', 'bgm.mp3');
tXHR.responseType = 'arraybuffer';
tXHR.onreadystatechange = function() {
if (tXHR.readyState === 4 && tXHR.status === 200) {
tContext.decodeAudioData(
tXHR.response,
function (pAudioBuffer) {
tMessage.innerHTML += 'BGM loaded.';
tBGM = tContext.createBufferSource();
tBGM.buffer = pAudioBuffer;
tBGM.connect(tContext.destination);
if (tBGM.start) {
tBGM.start(0, 5.5);
} else {
tBGM.noteGrainOn(0, 5.5, pAudioBuffer.duration);
}
},
function () {
tMessage.innerHTML += 'Failed to load BGM.';
}
);
}
};
tXHR.send();
}, false);
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment