HTML - No se reproducen los sonidos.

 
Vista:
sin imagen de perfil

No se reproducen los sonidos.

Publicado por Santiago (3 intervenciones) el 16/02/2023 20:44:56
Hola buenas!
Quiero crear una web sencilla para mi hija en la cual tiene que enlazar los sonidos de las cajas de la izquierda con las imagenes de la derecha.
El problema es que no se reproducen los sonidos.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<!DOCTYPE html>
<html>
  <head>
    <title>Juego de enlazar sonidos e imágenes</title>
    <link rel="stylesheet" href="vega.css">
  </head>
  <body>
    <h1>Juego de enlazar sonidos e imágenes</h1>
    <div id="container">
      <div id="sounds">
        <div id="sound1" class="sound" data-index="0"><audio src="peppapig.mp3"></audio></div>
        <div id="sound2" class="sound" data-index="1"><audio src="vahiana.mp3"></audio></div>
        <div id="sound3" class="sound" data-index="2"><audio src="miercoles.mp3"></audio></div>
        <div id="sound4" class="sound" data-index="3"><audio src="patatin.mp3"></audio></div>
        <div id="sound5" class="sound" data-index="4"><audio src="bluey.mp3"></audio></div>
        <div id="sound6" class="sound" data-index="5"><audio src="rapunzel.mp3"></audio></div>
      </div>
      <div id="images">
        <div id="image1" class="image" data-index="0"><img src="https://i.ibb.co/wBxxHC3/unnamed.png" alt="unnamed" border="0" /></div>
        <div id="image2" class="image" data-index="1"><img src="https://i.ibb.co/Vgngzh1/71jr-SKdnu8-L-SL1500.jpg" alt="71jr-SKdnu8-L-SL1500" border="0" /></div>
        <div id="image3" class="image" data-index="2"><img src="https://i.ibb.co/F8z6RW7/f-elconfidencial-com-original-361-7ac-c3b-3617acc3b6561564ea6582fcecf5cd08.jpg" alt="f-elconfidencial-com-original-361-7ac-c3b-3617acc3b6561564ea6582fcecf5cd08" border="0" /></div>
        <div id="image4" class="image" data-index="3"><img src="https://i.ibb.co/0BxTjxh/patat-n-y-patat-n.jpg" alt="patat-n-y-patat-n" border="0" /></div>
        <div id="image5" class="image" data-index="4"><img src="https://i.ibb.co/R6DgvfW/bluey.jpg" alt="bluey" border="0" /></div>
        <div id="image6" class="image" data-index="5"><img src="https://i.ibb.co/vDFtGBq/rapunzel.jpg" alt="rapunzel" border="0" /></div>
      </div>
    </div>
    <script src="vega.js"></script>
  </body>
</html>

y este seria el codigo .js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
// Seleccionar los elementos del DOM
var soundBoxes = document.querySelectorAll(".sound");
var imageBoxes = document.querySelectorAll(".image");
 
// Crear un array con los enlaces correctos
var links = [
[0, 4],
[1, 0],
[2, 5],
[3, 1],
[4, 2],
[5, 3]
];
 
// Crear variables para guardar los elementos seleccionados
var selectedSoundBox = null;
var selectedImageBox = null;
 
// Crear variable para guardar el elemento de audio seleccionado
var selectedAudio = null;
 
// Función que se llama cuando se hace clic en una caja de sonidos
function selectSoundBox(event) {
// Si ya se seleccionó una caja de sonidos previamente, se le quita la clase "selected"
if (selectedSoundBox) {
selectedSoundBox.classList.remove("selected");
}
 
// Se guarda la caja de sonidos seleccionada en la variable "selectedSoundBox"
selectedSoundBox = event.currentTarget;
selectedSoundBox.classList.add("selected");
 
// Se actualiza el elemento de audio seleccionado
selectedAudio = document.querySelector("#audio-" + selectedSoundBox.dataset.index);
}
 
// Función que se llama cuando se hace clic en una caja de imágenes
function selectImageBox(event) {
// Si ya se seleccionó una caja de imágenes previamente, se le quita la clase "selected"
if (selectedImageBox) {
selectedImageBox.classList.remove("selected");
}
 
// Se guarda la caja de imágenes seleccionada en la variable "selectedImageBox"
selectedImageBox = event.currentTarget;
selectedImageBox.classList.add("selected");
 
// Si ya se seleccionó una caja de sonidos previamente y esta corresponde con la caja de imágenes seleccionada, se muestra una animación de éxito y se reproduce el sonido correspondiente
if (selectedSoundBox && links[selectedSoundBox.dataset.index][1] === parseInt(selectedImageBox.dataset.index)) {
selectedSoundBox.classList.add("success");
selectedImageBox.classList.add("success");
 
// Se reproduce el sonido correspondiente
selectedAudio.play();
}
 
// Si no se seleccionó ninguna caja de sonidos o la selección no corresponde con la caja de imágenes seleccionada, se muestra una animación de error
if (!selectedSoundBox || links[selectedSoundBox.dataset.index][1] !== parseInt(selectedImageBox.dataset.index)) {
selectedSoundBox = null;
selectedImageBox = null;
 
setTimeout(function() {
  soundBoxes.forEach(function(box) {
    box.classList.remove("selected", "success", "error");
  });
  imageBoxes.forEach(function(box) {
    box.classList.remove("selected", "success", "error");
  });
}, 1000);
 
}
}
 
// Añadir el evento "click" a todas las cajas de sonidos
soundBoxes.forEach(function(box) {
box.addEventListener("click", selectSoundBox);
});
 
// Añadir el evento "click" a todas las cajas de imágenes
imageBoxes.forEach(function(box) {
box.addEventListener("click", selectImageBox);
});

Si pudierais ayudarme un poco os lo agradeceria.
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
sin imagen de perfil

No se reproducen los sonidos.

Publicado por antonio (19 intervenciones) el 19/02/2023 13:09:52
Hola buenas prueba por ejemplo:
<audio controls>
<source src="peppapig.mp3" type="audio/mp3"></audio>
Aunque puede ser algo del javascript esto seria un ejemplo mas sencillo de lo que quieres hacer faltaría poner los audios pero espero que lo comprendas:https://escueladepostgrados.000webhostapp.com/prueba.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
<!DOCTYPE HTML>
<html>
<style>
.0 {
 
  padding: 10px;
 
}
.1 {
 
  padding: 10px;
 
}
</style>
 
<body>
    <table>
        <tr>
            <td><div class="0" >
    <img src="https://i.ibb.co/wBxxHC3/unnamed.png" alt="unnamed" border="0" ondragstart="dragStart(event)"  id="0"/>
</div></td>
            <td><div class="1" ondragenter="dragEnter(event)"><audio controls>
    <source src="miercoles.mp3" type="audio/mp3"></audio></div></td>
            <td><img id="demo2" src="descarga.jpg" style="display:none"><p id="prueba"></p></p></td>
        </tr>
 
        <tr>
            <td>
                <div id="image3" class="image" ><img src="https://i.ibb.co/F8z6RW7/f-elconfidencial-com-original-361-7ac-c3b-3617acc3b6561564ea6582fcecf5cd08.jpg" ondragstart="dragStart(event)" id="1"/></div>
            </td>
            <td>
                <div class="0" ondragenter="dragEnter(event)" id="peppa"><audio controls>
    <source src="peppapig.mp3" type="audio/mp3"></audio></div>
            </td>
            <td>
                <img id="demo"  src="descarga.jpg" style="display:none"></p>
            </td>
        </tr>
        <tr>
            <td>
               <div id="image2" class="image" data-index="1"><img src="https://i.ibb.co/Vgngzh1/71jr-SKdnu8-L-SL1500.jpg" border="0" id="2" ondragstart="dragStart(event)"/></div>
            </td>
            <td>
                <div class="1" ondragenter="dragEnter(event)"><audio controls>
    <source src="Bluey.mp3" type="audio/mp3"></audio></div>
            </td>
            <td>
                <img id="demo3"  src="descarga.jpg" style="display:none"></p>
            </td>
        </tr>
        <tr>
            <td>
               <div id="image4" class="image" data-index="3"><img src="https://i.ibb.co/0BxTjxh/patat-n-y-patat-n.jpg"  border="0" id="3" ondragstart="dragStart(event)"/></div>
            </td>
            <td>
 
            </td>
            <td>
                <img id="demo3"  src="descarga.jpg" style="display:none"></p>
            </td>
        </tr>
         <tr>
            <td>
               <div id="image5" class="image" data-index="4"><img src="https://i.ibb.co/R6DgvfW/bluey.jpg" alt="bluey" border="0" id="4" ondragstart="dragStart(event)"/></div>
            </td>
            <td>
 
            </td>
            <td>
                <img id="demo4"  src="descarga.jpg" style="display:none"></p>
            </td>
        </tr>
 
         <tr>
            <td>
              <div id="image6" class="image" data-index="5"><img src="https://i.ibb.co/vDFtGBq/rapunzel.jpg" alt="rapunzel" border="0" id="5" ondragstart="dragStart(event)"/></div>
            </td>
            <td>
 
            </td>
            <td>
                <img id="demo5"  src="descarga.jpg" style="display:none"></p>
            </td>
        </tr>
 
    </table>
 
 
 
 
 
<script>
var id_evento="";
function dragStart(event) {
  event.dataTransfer.setData("Text", event.target.id);
  id_evento=event.target.id;
}
 
function dragEnter(event) {
 
  if (id_evento == "0") {
    document.getElementById("demo").style.display="block";
 
  }
   if (id_evento == "1") {
    document.getElementById("demo2").style.display="block";
 
  }
   if (id_evento == "4") {
    document.getElementById("demo3").style.display="block";
 
  }
 
}
 
 
 
</script>
 
</body>
</html>
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 Alejandro
Val: 247
Bronce
Ha mantenido su posición en HTML (en relación al último mes)
Gráfica de HTML

No se reproducen los sonidos.

Publicado por Alejandro (100 intervenciones) el 02/03/2023 20:58:15
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
1
selectedAudio = document.querySelector("#audio-" + selectedSoundBox.dataset.index);
no tienes ningún elemento con id="audio-..."
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