javascript - HTML onclick 中多个音频文件的问题

标签 javascript html audio html5-audio

我正在创建一个有 10 个键的在线乐器,每个键都有一个录制的声音,可以在点击时播放。目前它只播放第一个声音,我无法弄清楚我需要在我的代码中做什么才能播放其他音频文件。我查看了多个链接来尝试解决这个问题,但没有任何效果!

<h1> Click to Play 

<script>  function play(){
   var audio = document.getElementById("audio");
   audio.play();
             }
 </script> <img src='https://s3-us-west-2.amazonaws.com/s.cdpn.io/2124473 /Low_2.jpeg' value="PLAY"  onclick="play()"><audio id="audio" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/2124473/low%202.mp3" ></audio>

 <img src='https://s3-us-west-2.amazonaws.com/s.cdpn.io/2124473/Low_3.jpeg' value="PLAY"  onclick="play()"><audio id="audio" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/2124473/low%203.mp3" ></audio>


 <img src='https://s3-us-west-2.amazonaws.com/s.cdpn.io/2124473/Low_5.jpeg' value="PLAY"  onclick="play()"><audio id="audio" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/2124473/low%205.mp3" ></audio>

<img src='https://s3-us-west-2.amazonaws.com/s.cdpn.io/2124473/Low_6.jpeg' value="PLAY"  onclick="play()"><audio id="audio" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/2124473/low%206.mp3" ></audio>

<img src='https://s3-us-west-2.amazonaws.com/s.cdpn.io/2124473/Low_1.jpeg' value="PLAY"  onclick="play()"><audio id="audio" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/2124473/low%201.mp3" ></audio>

<img src='https://s3-us-west-2.amazonaws.com/s.cdpn.io/2124473/High_2.jpeg' value="PLAY"  onclick="play()"><audio id="audio" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/2124473/high%202.mp3" ></audio>

<img src='https://s3-us-west-2.amazonaws.com/s.cdpn.io/2124473/High_3.jpeg' value="PLAY"  onclick="play()"><audio id="audio" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/2124473/High%203.mp3" ></audio>

<img src='https://s3-us-west-2.amazonaws.com/s.cdpn.io/2124473/High_5.jpeg' value="PLAY"  onclick="play()"><audio id="audio" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/2124473/High%205.mp3" ></audio>

<img src='https://s3-us-west-2.amazonaws.com/s.cdpn.io/2124473/High_6.jpeg' value="PLAY"  onclick="play()"><audio id="audio" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/2124473/high%206.mp3" ></audio>

<img src='https://s3-us-west-2.amazonaws.com/s.cdpn.io/2124473/High_1.jpeg' alt=''>



</body>
<html>

最佳答案

您应该将 Id 发送到 javascript 函数或使用不同的 id

第一个解决方案:

<h1> Click to Play </h1>

<script>  function play(id){
   var audio = document.getElementById('audio'+id);
   audio.play();
             }
 </script> <img src='https://s3-us-west-2.amazonaws.com/s.cdpn.io/2124473 /Low_2.jpeg' value="PLAY"  onclick="play('1')"><audio id="audio1" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/2124473/low%202.mp3" ></audio>

 <img src='https://s3-us-west-2.amazonaws.com/s.cdpn.io/2124473/Low_3.jpeg' value="PLAY"  onclick="play('2')"><audio id="audio2" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/2124473/low%203.mp3" ></audio>    

</body>
<html>

第二种解决方案:

你可以像这样使用jquery:

<h1> Click to Play </h1>

<script>
$(document).ready(function(){
    $('img').click(function() {
        $(this).first('audio').play();
    });

});

</script>
 <img src='https://s3-us-west-2.amazonaws.com/s.cdpn.io/2124473 /Low_2.jpeg' value="PLAY" ><audio id="audio1" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/2124473/low%202.mp3" ></audio>

     <img src='https://s3-us-west-2.amazonaws.com/s.cdpn.io/2124473/Low_3.jpeg' value="PLAY" ><audio id="audio2" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/2124473/low%203.mp3" ></audio>    

    </body>
    <html>

关于javascript - HTML onclick 中多个音频文件的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51128818/

相关文章:

javascript - 考虑到用户在编写 JS 时自行将元素添加到 HTML 中?

javascript - 从服务器(Expressjs路由)发送消息到客户端

css - 如何创建带下拉菜单的水平滚动菜单?

android - 在Android中将WAV文件转换为矢量

audio - 如何服务/流式传输多个音频文件

javascript - ng-repeat 中的新元素动画

Javascript 正则表达式匹配字母或 -

css - Netbeans 忽略 HTML5 应用程序中的 CSS 样式

html - 如何选择 A 类元素位于另一个 B 类元素之下?

audio - 如何使用 Swift 3 在 App 中共享音频文件?