JavaScript - Reproducir sonido al cambiar contenido de una tabla

 
Vista:

Reproducir sonido al cambiar contenido de una tabla

Publicado por Luis Perez (3 intervenciones) el 07/11/2017 13:15:02
Estoy tratando de crear una función que reproducirá un sonido cuando algún elemento de una tabla cambie, estaba intentándolo de la siguiente manera:

1
2
3
4
5
$(document).ready(function(){
     $("#hor-zebra").change(function(){
         document.getElementById('bflat').play()
     });
});

Este sería el HTML:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<audio id="bflat" src="timbre.mp3"></audio>
 
<table id="hor-zebra" class="col-6" summary="">
<thead>
    <tr>
        <th scope="col">Ticket</th>
        <th scope="col">Puesto</th>
    </tr>
</thead>
<tbody>
    <tr class="odd first">
        <td class="first">A083</td>
        <td class="first">MESA 1</td>
    </tr>
    <tr class="odd">
        <td>B064</td>
        <td>MESA 9</td>
    </tr>
    <tr>
        <td>C028</td>
        <td>MESA 5</td>
    </tr>
</tbody>

¿Alguna idea de como hacerlo?

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Pedro
Val: 101
Ha aumentado 1 puesto en JavaScript (en relación al último mes)
Gráfica de JavaScript

Reproducir sonido al cambiar contenido de una tabla

Publicado por Pedro (23 intervenciones) el 07/11/2017 13:52:00
[1] Elimina esto del body <audio id="bflat" src="timbre.mp3"></audio>
[2]Remplázalo por esto:
<audio src"" class="speech" hidden></audio>
[3]Ahora mete dentro de tu función esto:
1
$('audio').attr('src','timbre.mp3').get(0).play();


Explicación técnica: Tenemos un tag html5 audio oculto.
Cuando cambie la tabla y entre dentro de la funcion que has creado
se le añade el atributo source == src con la ruta o path al sonido y le
indicamos que se ejecute con play.

PD: Necesitas linkear a jquery en los heads pero deduzco que ya lo
tienes linkeado por la función que tienes creada.

Un saludo y ya contarás como te ha ido como siempre digo vosotros
preguntáis mi cerebro responde con lo primero que se le ocurre por
tanto probar y experimentar que es de la forma que aprendemos todæs.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Reproducir sonido al cambiar contenido de una tabla

Publicado por Luis Perez (3 intervenciones) el 07/11/2017 16:29:13
Hola Pedro,

Gracias por responder, entonces cambiamos el tag de audio y dejamos el script de la siguiente forma:

1
2
3
4
5
6
7
<script type="text/javascript">
$(document).ready(function(){
     $("#hor-zebra").change(function(){
		 $('audio').attr('src','timbre.mp3').get(0).play();
     });
});
</script>

Parece que no funciona, no sé si tendrá que ver con el evento change.

No obstante gracias por tu tiempo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Pedro
Val: 101
Ha aumentado 1 puesto en JavaScript (en relación al último mes)
Gráfica de JavaScript

Reproducir sonido al cambiar contenido de una tabla

Publicado por Pedro (23 intervenciones) el 07/11/2017 20:44:11
F12 examina el error que te indica y nos cuentas . Comprueba que la ruta al archivo mp3 es correcta. Desde luego el código es bueno porque tengo uno igual que en vez de ruta local es una url de WAN y me trabaja perfectamente.

Coloca un alert dentro de la función así:

alert("Estoy dentro de la función "); //De esta manera sabrás si el error es anterior o lo tienes dentro de la función.

Examina como te indico desde F12 el error que te mostrará en el apartado consola.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Reproducir sonido al cambiar contenido de una tabla

Publicado por Luis Perez (3 intervenciones) el 08/11/2017 16:18:51
Hola Pedro,

La ruta es correcta, lo tengo dentro del directorio raíz donde está el fichero html.

No obstante es un caso un poco excepcional, quizá por eso no esté dando resultado. Te comento:

Tengo dos archivos html (index.html y frame.html), dentro del frame.html es donde tengo la tabla cuyo código puse más arriba, junto a una etiqueta meta para que refresque el contenido automáticamente cada 2 segundos

1
<meta http-equiv="refresh" content="2" >

En el index.html tengo un iframe que visualiza el contenido del archivo frame.html

1
<div class="col-6"><iframe src="frame.html"></iframe>

Por medio de una aplicación Visual Basic, estoy modificando los valores de la tabla en el archivo frame.html cada cierto tiempo, de esta forma el archivo index.html refresca el contenido del iframe y cuando hay algún cambio se refleja.

La idea era que cada vez que haya un cambio en el archivo frame.html diese un pitido, pero quizás al hacer el refresco con el meta esté dando algún problema.

No sé si he aclarado mucho como funciona el tema.

Gracias por tu tiempo.

Un saludo.

P.D. No sé si existe alguna opción para subir los ficheros y pudieses echarles un vistazo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar