preload audio and image

This commit is contained in:
Jules Laplace
2015-07-11 03:24:27 -04:00
parent ee86ef7130
commit 6d3d945398
3 changed files with 89 additions and 39 deletions

View File

@@ -1,26 +1,49 @@
(function(){
var hasWebKit = ('webkitAudioContext' in window) && !('chrome' in window)
var context = new webkitAudioContext()
var request = new XMLHttpRequest()
var source
var audio = (function(){
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) )
}
else {
setTimeout(loop, 0)
}
source = context.createBufferSource()
source.connect(context.destination)
source.buffer = response
})()
}, function () { console.error('The request failed.') } )
var audio = {}
var context = new webkitAudioContext()
var source
var current = ""
var bufs = {}
var sources = {}
audio.preload = function(site, loader){
loader.register(site.domain + "_sound")
var request = new XMLHttpRequest()
request.open('GET', url, true)
request.responseType = 'arraybuffer'
request.onload = function() {
context.decodeAudioData(request.response, function(buf) {
bufs[site.domain] = buf
loader.ready(site.domain + "_sound")
}, function () { console.error('The request failed.') } )
}
request.send()
}
request.send()
audio.play = function(domain){
var buf = bufs[domain]
var source = context.createBufferSource()
source.connect(context.destination)
source.buffer = buf
source.start(0)
sources[domain] = sources[domain] || []
sources[domain].push(source)
}
/*
(function loop(){
if (source) {
source.start(0)
setTimeout(loop, source.buffer.duration * 1000 - (source.buffer.duration < 2 ? 0 : 60) )
}
else {
setTimeout(loop, 0)
}
})()
*/
})()