Audio and WebAudio utility functions.
<script src="lib/WMAudioUtil.js"></script>
<script>
var ctx = window.AudioContext ? new window.AudioContext()
: window.webkitAudioContext ? new window.webkitAudioContext() : null;
var autoPlay = WMAudioUtil.getAutoPlayFunction(ctx);
var buffer = {}; // decodedBuffer. { url: buffer, ... }
var source = {}; // AudioBufferSourceNode. { url: node ... }
function _loadAndAutoPlay(url, play) {
var xhr = new XMLHttpRequest();
xhr.onload = function() {
ctx.decodeAudioData(xhr.response, function(buffer) {
buffer[url] = buffer;
source[url] = ctx.createBufferSource();
source[url].buffer = buffer;
source[url].connect(ctx.destination);
if (play) {
source[url].start(0);
}
});
};
xhr.responseType = "arraybuffer";
xhr.open("GET", url);
xhr.send();
}
_loadAndAutoPlay("demo.m4a", true); // Auto play, supports iOS Devices.
</script>
<input type="button" value="enable auto play" onclick="autoPlay()"></input>