update
This commit is contained in:
65
ytmnd.js
65
ytmnd.js
@@ -1,25 +1,42 @@
|
||||
(function(){
|
||||
var hasWebKit = ('webkitAudioContext' in window) && !('chrome' in window)
|
||||
var context = new webkitAudioContext()
|
||||
var request = new XMLHttpRequest()
|
||||
var source
|
||||
request.open('GET', url, true)
|
||||
request.responseType = 'arraybuffer'
|
||||
request.onload = function() {
|
||||
context.decodeAudioData(request.response, function(response) {
|
||||
(function loop(){
|
||||
if (source) {
|
||||
source.start(0)
|
||||
setTimeout(loop, source.buffer.duration * 1000 - (source.buffer.duration < 2 ? 0 : 60) )
|
||||
(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);
|
||||
}
|
||||
else {
|
||||
setTimeout(loop, 0)
|
||||
}
|
||||
source = context.createBufferSource()
|
||||
source.connect(context.destination)
|
||||
source.buffer = response
|
||||
})()
|
||||
}, function () { console.error('The request failed.') } )
|
||||
}
|
||||
request.send()
|
||||
})()
|
||||
|
||||
playBuffer();
|
||||
},
|
||||
function (error) {
|
||||
console.error("Audio decoding failed:", error);
|
||||
},
|
||||
);
|
||||
};
|
||||
|
||||
request.onerror = function () {
|
||||
console.error("Failed to load audio file");
|
||||
};
|
||||
|
||||
request.send();
|
||||
})();
|
||||
|
||||
Reference in New Issue
Block a user