Voy a probarlo, la verdad es que estaba haciéndome un quebradero de cabeza, que la verdad me estaba funcionando bastante mal.
Para que veas lo que estaba intentando.
Cita: ////////////
// Musica //
////////////
/** MUSICA DE FONDO, Y SILENCIARLA CAMBIANDO EL ICONO. **/
var audioFondo = document.createElement("audio");
var audio = document.createElement("audio");
// Canciones que se van a usar
var fondos = ["fondo1.mp3", "fondo1.mp3", "fondoo2.mp3", "fondo3.mp3", "fondo4.mp3", "fondo5.mp3", "fondo6.mp3", "fondo7.mp3",
"fondo8.mp3", "fondo9.mp3", "fondo10.mp3", "fondo11.mp3", "fondo12.mp3", "fondo13.mp3", "fondo14.mp3",
"fondo15.mp3", "fondo16.mp3", "fondo15.mp3"]; //se repite el primer fondo y el ultimo fondo.
var sonidosCapa2 =["vozd.mp3", "gritod.mp3"]; // capa dos significa que se reproducen a la vez que los fondos
var estado = false;
// Contadores para los arrays
var contFondo = 0;
var contAudio = 0;
// Direccion de los sonidos
audioFondo.src = "sounds/"+ fondos[contFondo];
audio.src = "sounds/"+ sonidosCapa2[contAudio];
// Esto crea un bucle para todos los fondos
audioFondo.addEventListener('ended', function () {
setTimeout(function () { audioFondo.play(); }, 0);
}, false);
//
audio.addEventListener('ended', function() {
cancion2 = "grito.mp3";
audio.src ="sound/"+cancion2;
audio.play();
}, false);
// Play de los audios
audioFondo.play();
audio.play();
// Silencia toda la musica al clickar en la imagen de audio
//
// Cambiar nombre de la variable estado por mute.
function silenciar() {
if(estado){
audioFondo.play();
audio.play();
document.getElementById("volumen").src = "images/audioOn.png";
} else {
audioFondo.pause();
audio.pause();
document.getElementById("volumen").src = "images/audioOff.png";
}
estado = !estado;
}
//Cambia de cancion a la anterior o la siguiente
//
//
//Comprobar si el audio esta mute, cuando se cambia de canción
function anterior(){
if(contFondo > 0){
audioFondo.pause();
contFondo = contFondo - 1;
audioFondo.src = "sounds/"+ fondos[contFondo];
audioFondo.play();
}
}
function siguiente(){
if(contFondo < fondos.length){
audioFondo.pause();
contFondo = contFondo + 1;
audioFondo.src = "sounds/"+ fondos[contFondo];
audioFondo.play();
}
}
//Hay que ver por que no funciona el cambio por scroll
var pantalla = $(window).height();
var scroll = 0;
var scrollBot = pantalla;
var scrollT = 0;
var ax;
$(window).scroll(function(){
ax = scroll;
scroll = $(window).scrollTop();
if(scroll > scrollBot){
siguiente();
scrollT = scrollT + scroll - ax;
scrollBot = scrollBot + scroll - ax;
}
if(scroll < scrollT){
anterior();
scrollT = scrollT - scroll;
scrollBot = scrollBot - scroll;
}
});
Probare esta tarde lo que me has dicho.
Y lo de un segundo sonido en momentos concretos lo he medio conseguido ya. Me refería a reproducir dos sonidos a la vez, que al principio no me funcionaba y no sabia si no se podía, o habría que hacer algo en especial. Lo que me falta es saber si esos "segundos sonidos" se pueden reproducir con retardo, por que encontré una función getStartDate(), pero aun no he probado como funciona.
(ej de lo que me refiero: que este sonando de fondo un ambiente de pájaros y mar, y en un momento preciso, después de 5 segundos suene un disparo.)
Muchas gracias por la ayuda ;)