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

16
.gitignore vendored
View File

@@ -1,10 +1,10 @@
.DS_Store
*~
typogra
klasky
alas
ROY4L
directory
CarlWinslows
Coach
typogra*
klasky*
alas*
ROY4L*
dnmyt*
directory*
CarlWinslows*
Coach*

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)
}
})()
*/
})()

View File

@@ -3,6 +3,8 @@
var ytmnd = {}
var sites = []
var base_href = 'https://ltho.s3.amazonaws.com/ytmnd/'
ytmnd.init = function(names){
var loader = new Loader(ytmnd.ready)
loader.register('init')
@@ -17,28 +19,53 @@
}
ytmnd.ready = function(){
var next = ytmnd.next()
shuffle(sites)
}
ytmnd.preload = function(site){
site.image_url = base_href + "/" + site.username + "/" + site.domain + "." + site.image_type
site.sound_url = base_href + "/" + site.username + "/" + site.domain + "." + site.sound_type
var loader = new Loader (function(){
})
loader.register('init')
loader.preloadImage( site.image_url )
audio.preload( loader, site.sound_url )
loader.ready('init')
}
ytmnd.play = function(data){
ytmnd.play = function(site){
document.querySelector("title").innerHTML = site.title
document.body.style.backgroundColor = site.bgcolor
document.body.className = site.placement
zoomtext.render(site)
}
ytmnd.stop = function(){
}
ytmnd.back = function(){
}
ytmnd.next = function(){
}
ytmnd.loop = function(){
}
return ytmnd
})()
/*
simplified_info = {
'domain': domain,
'title': title,
'username': username,
// 'domain': domain,
// 'title': title,
// 'username': username,
'work_safe': work_safe,
'bgcolor': bgcolor,
'placement': placement,
'zoom_text': zoom_text,
// 'bgcolor': bgcolor,
// 'placement': placement,
// 'zoom_text': zoom_text,
'image': domain + "." + gif_type,
'sound': domain + "." + wav_type,
'image_type': gif_type,