Hola otra vez:
Para probar la precarga en mozilla y otros navegadores, instalé el plugin quicktime y tuve que hacer algunas modificaciones para adaptar el código.
Se puede ver en esta página:
http://www.pepemolina.com/sonidos/index3.html
Lamentablemente no existe para los sonidos el atributo complete (al menos no vi nada parecido)
En opera funciona, pero no se corta la música ni la cambia.
No sé si será preferible usar bgsound en estos casos.
Código PHP:
<script type="text/javascript">
var sones;
function _desactivar() {
this.sonido.innerHTML = "";
}
function _activar() {
var son = "<embed src='" + this.son[_activar.arguments[0]].src + "' autostart='true' hidden='true' style='display: inline'></embed>";
this.sonido.innerHTML = son;
}
function preSonidos() {
this._entradas = preSonidos.arguments;
this.total = this._entradas.length;
this.son = new Array(this.total);
for (var i = 0; i < this.total; i ++) {
this.son[i] = document.createElement("embed");
this.son[i].src = this._entradas[i];
this.son[i].autostart = false;
this.son[i].style.display = "none";
document.body.appendChild(this.son[i]);
}
this.sonando = false;
this.incrustado = false;
this.activar = _activar;
this.desactivar = _desactivar;
this.sonido = document.createElement("div");
document.body.appendChild(this.sonido);
}
function ini() {
sones = new preSonidos('celtic0.mid', 'celtic1.mid', 'celtic2.mid', 'celtic3.mid', 'Starway_to_Heaven.mp3');
}
</script>
y el body de ejemplo:
<body onload="ini();">
<button onclick="sones.activar(0)">celtic0.mid</button>
<button onclick="sones.activar(1)">celtic1.mid</button>
<button onclick="sones.activar(2)">celtic2.mid</button>
<button onclick="sones.activar(3)">celtic3.mid</button>
<button onclick="sones.activar(4)">Starway_to_Heaven.mp3</button>
<button onclick="sones.desactivar()">desactivar</button>
<br />
</body>
Saludos