Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/12/2012, 17:34
FerminCacho
 
Fecha de Ingreso: diciembre-2012
Mensajes: 15
Antigüedad: 11 años, 5 meses
Puntos: 0
Problema reproduciendo sonido

Buenas, un saludo a todos. Estoy realizando un pequeño cronometro en javascript, el cronometro lo tengo todo bien implementado y funciona, el problema que tengo es que quiero emitir una señal acústica que me indique el comienzo del mismo. Para ello he empleado la etiqueta html <embed>, el primer problema que tengo, es que dentro de esa misma etiqueta en el campo loop, ponga el valor que ponga, siempre esta repitiéndose el pitido, nose si me podéis ayudar a solventar este problema. Por no dejar el proyecto a medias y esperar a dar con una solución (que me harte de buscar por internet haber si encontraba algo) lo que hice fue implementar el código de la siguiente manera:
/***********************/
/*Esta funcion activa el sonido*/
/***********************/
function activarsonido(value){
var sonido = window.document.getElementById("sonido");
sonido.innerHTML = "<embed src='../beep-5.wav' autostart='true' loop="+value+" volume='100' width='0' height='0' hidden='true'>";
var valuetime = value*1300;
setTimeout("detenersonido()",valuetime);
};
/*************************/
/*Esta funcione detiene el sonido*/
/*************************/
function detenersonido(){
var sonido = window.document.getElementById("sonido");
sonido.innerHTML = "";
};
Como pueden ver, lo que hago es introducir el codigo embed, dentro de un div que tengo en el documento html, al cual le tengo asociado el id="sonido" y como les comente antes, no pude solucionar el problema con el loop, sencillamente lo que hago es multiplicar el tiempo que dura el beep, por el numero de veces que quiero que lo haga, y transcurrido ese tiempo, lo detengo, la manera de hacerlo es borrando el codigo dentro de la etiqueta donde estaba el div, nose si ha quedado claro, para que me entienda mejor....

DESPUES DE LLAMAR A ACTIVARSONIDO();
<div id=sonido>
<embed src='../beep-5.wav' autostart='true' loop="+value+" volume='100' width='0' height='0' hidden='true'>;
</div>
DESPUES DE DETENERSONIDO
<div id=sonido>
</div>

Bien, este conjunto de funciones me resulto a medias, pues ahora si que consigo hacer el numero de beeps que quiero, en vez de quedarse todo el rato reproduciéndose el sonido una vez lo activaba, pero me surgió un segundo problema, y es que no siempre lo reproduce, va a su bola, he comprobado el resto del codigo asociado al cronometro en si, y el código es correcto, el problema es que no se porque, a pesar de hacer las llamadas oportunas a estas funcionas que les he descrito, hay veces que suena, y veces que no, realmente aunque parezca una tontería, esta es una parte muy importante del proyecto, pues me baso en la señal acústica del crono para conocer los intervalos del tiempo que he marcado en el mismo, pues cuando lo use no estaré mirando de manera continua a la pantalla del ordenador, si no que me guiare por estas señales sonoras.
De ante mano muchas gracias, y lo siento por la parrafada, espero haberme explicado con bastante claridad.