100 audio start/stop
Starts and stops the same audio node 100 times. Testing what's causing a Chrome 9 freeze.
by parente
HTML
<button id="go">Click to run test</button>
CSS
body {
font-family: sans-serif;
}
h1 {
font-size: 1.5em;
}
p {
margin-top: 1em;
margin-bottom: 1em;
}
JavaScript
function onStart(event) {
console.log('start event: ' + event.target.id);
}
function onPause(event) {
console.log('pause event: ' + event.target.id);
}
function onEnded(event) {
console.log('end event: ' + event.target.id);
}
function onError(event) {
console.error('error event (' + event.target.error + '): ' + event.target.id);
}
document.getElementById('go').addEventListener('click', function() {
var url = 'http://static.mindtrove.info/test.ogg';
var s = new Audio(url);
// hook up listeners
s.addEventListener('play', onStart, false);
s.addEventListener('pause', onPause, false);
s.addEventListener('ended', onEnded, false);
s.addEventListener('error', onError, false);
var i = 0;
var splay = function() {
setTimeout(function() {
s.url = url;
s.play();
sstop();
}, 0);
};
var sstop = function() {
setTimeout(function() {
s.pause();
s.url = '';
if(i++ < 100) {
splay();
}
}, 50);
};
splay();
}, false);