43 lines
934 B
JavaScript
43 lines
934 B
JavaScript
(function () {
|
|
var AudioContext = window.AudioContext || window.webkitAudioContext;
|
|
var context = new AudioContext();
|
|
var request = new XMLHttpRequest();
|
|
var source;
|
|
var buffer;
|
|
|
|
request.open("GET", url, true);
|
|
request.responseType = "arraybuffer";
|
|
|
|
request.onload = function () {
|
|
context.decodeAudioData(
|
|
request.response,
|
|
function (response) {
|
|
buffer = response;
|
|
|
|
function playBuffer() {
|
|
source = context.createBufferSource();
|
|
source.buffer = buffer;
|
|
source.connect(context.destination);
|
|
|
|
source.onended = function () {
|
|
playBuffer();
|
|
};
|
|
|
|
source.start(0);
|
|
}
|
|
|
|
playBuffer();
|
|
},
|
|
function (error) {
|
|
console.error("Audio decoding failed:", error);
|
|
},
|
|
);
|
|
};
|
|
|
|
request.onerror = function () {
|
|
console.error("Failed to load audio file");
|
|
};
|
|
|
|
request.send();
|
|
})();
|