preload audio and image
This commit is contained in:
16
.gitignore
vendored
16
.gitignore
vendored
@@ -1,10 +1,10 @@
|
|||||||
.DS_Store
|
.DS_Store
|
||||||
*~
|
*~
|
||||||
typogra
|
typogra*
|
||||||
klasky
|
klasky*
|
||||||
alas
|
alas*
|
||||||
ROY4L
|
ROY4L*
|
||||||
directory
|
dnmyt*
|
||||||
CarlWinslows
|
directory*
|
||||||
Coach
|
CarlWinslows*
|
||||||
|
Coach*
|
||||||
|
|||||||
@@ -1,26 +1,49 @@
|
|||||||
(function(){
|
var audio = (function(){
|
||||||
var hasWebKit = ('webkitAudioContext' in window) && !('chrome' in window)
|
|
||||||
var context = new webkitAudioContext()
|
|
||||||
var request = new XMLHttpRequest()
|
|
||||||
var source
|
|
||||||
|
|
||||||
request.open('GET', url, true)
|
var audio = {}
|
||||||
request.responseType = 'arraybuffer'
|
|
||||||
request.onload = function() {
|
var context = new webkitAudioContext()
|
||||||
context.decodeAudioData(request.response, function(response) {
|
var source
|
||||||
(function loop(){
|
var current = ""
|
||||||
if (source) {
|
|
||||||
source.start(0)
|
var bufs = {}
|
||||||
setTimeout(loop, source.buffer.duration * 1000 - (source.buffer.duration < 2 ? 0 : 60) )
|
var sources = {}
|
||||||
}
|
|
||||||
else {
|
audio.preload = function(site, loader){
|
||||||
setTimeout(loop, 0)
|
loader.register(site.domain + "_sound")
|
||||||
}
|
var request = new XMLHttpRequest()
|
||||||
source = context.createBufferSource()
|
request.open('GET', url, true)
|
||||||
source.connect(context.destination)
|
request.responseType = 'arraybuffer'
|
||||||
source.buffer = response
|
request.onload = function() {
|
||||||
})()
|
context.decodeAudioData(request.response, function(buf) {
|
||||||
}, function () { console.error('The request failed.') } )
|
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)
|
||||||
|
}
|
||||||
|
})()
|
||||||
|
*/
|
||||||
|
|
||||||
})()
|
})()
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
var ytmnd = {}
|
var ytmnd = {}
|
||||||
var sites = []
|
var sites = []
|
||||||
|
|
||||||
|
var base_href = 'https://ltho.s3.amazonaws.com/ytmnd/'
|
||||||
|
|
||||||
ytmnd.init = function(names){
|
ytmnd.init = function(names){
|
||||||
var loader = new Loader(ytmnd.ready)
|
var loader = new Loader(ytmnd.ready)
|
||||||
loader.register('init')
|
loader.register('init')
|
||||||
@@ -17,28 +19,53 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
ytmnd.ready = function(){
|
ytmnd.ready = function(){
|
||||||
var next = ytmnd.next()
|
shuffle(sites)
|
||||||
}
|
}
|
||||||
|
|
||||||
ytmnd.play = function(data){
|
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(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.stop = function(){
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ytmnd.back = function(){
|
||||||
|
}
|
||||||
|
|
||||||
|
ytmnd.next = function(){
|
||||||
|
}
|
||||||
|
|
||||||
|
ytmnd.loop = function(){
|
||||||
|
}
|
||||||
|
|
||||||
return ytmnd
|
return ytmnd
|
||||||
})()
|
})()
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
simplified_info = {
|
simplified_info = {
|
||||||
'domain': domain,
|
// 'domain': domain,
|
||||||
'title': title,
|
// 'title': title,
|
||||||
'username': username,
|
// 'username': username,
|
||||||
'work_safe': work_safe,
|
'work_safe': work_safe,
|
||||||
'bgcolor': bgcolor,
|
// 'bgcolor': bgcolor,
|
||||||
'placement': placement,
|
// 'placement': placement,
|
||||||
'zoom_text': zoom_text,
|
// 'zoom_text': zoom_text,
|
||||||
'image': domain + "." + gif_type,
|
'image': domain + "." + gif_type,
|
||||||
'sound': domain + "." + wav_type,
|
'sound': domain + "." + wav_type,
|
||||||
'image_type': gif_type,
|
'image_type': gif_type,
|
||||||
|
|||||||
Reference in New Issue
Block a user