JSFiddle - React, Tailwind, and code Playground
JavaScript
function ab2str(buf) {
return String.fromCharCode.apply(null, new Uint16Array(buf));
}
function str2ab(str) {
var buf = new ArrayBuffer(str.length*2); // 2 bytes for each char
var bufView = new Uint16Array(buf);
for (var i=0, strLen=str.length; i<strLen; i++) {
bufView[i] = str.charCodeAt(i);
}
return buf;
}
//var obj = {}
var audioContext = new AudioContext()
var ajax = new XMLHttpRequest();
ajax.open('GET',
'http://localhost:3000/models/audio.mp3',
true)
ajax.responseType = 'arraybuffer';
ajax.addEventListener('load', function() {
var tostr = ab2str(this.response)
var toab = str2ab(tostr)
audioContext.decodeAudioData(toab, function(buffer) {
var source = audioContext.createBufferSource();
source.buffer = buffer;
source.loop = true;
source.loopStart = 10;
source.loopEnd = 15;
source.connect(audioContext.destination);
source.start(0)
})
})