按钮点击声音
Buttons click Sounds
这就是我想做的事情:
我有 30 个按钮。我希望当点击每个按钮时,它会播放不同的 mp3 文件。像这样http://www.soundjig.com/pages/soundfx/beeps.html
我只知道如何单击 1 个按钮来播放 1 个音频文件,如下所示:
<audio id="mysoundclip" preload="auto">
<source src="ci1.mp3"></source>
</audio>
<button type="button" class="ci">play</button>
<script type="text/javascript">
var audio = $("#mysoundclip")[0];
console.log(audio);
$("button.play").click(function() {
audio.play();
});
</script>
我不想将所有这些代码应用到所有按钮 - 有没有办法快速做到这一点?
感谢阅读!
您可以使用 JavaScript 提供的 Audio
class。
看看这个 fiddle。
这是片段。
var baseUrl = "http://www.soundjay.com/button/";
var audio = ["beep-01a.mp3", "beep-02.mp3", "beep-03.mp3", "beep-04.mp3", "beep-05.mp3", "beep-06.mp3", "beep-07.mp3", "beep-08b.mp3", "beep-09.mp3"];
$('button.ci').click(function() {
var i = $(this).attr('id').substring(1); //get the index of button
new Audio(baseUrl + audio[i - 1]).play(); //play corresponding audio
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<button id="b1" type="button" class="ci">SOUND</button>
<br>
<button id="b2" type="button" class="ci">SOUND</button>
<br>
<button id="b3" type="button" class="ci">SOUND</button>
<br>
<button id="b4" type="button" class="ci">SOUND</button>
<br>
<button id="b5" type="button" class="ci">SOUND</button>
<br>
<button id="b6" type="button" class="ci">SOUND</button>
<br>
<button id="b7" type="button" class="ci">SOUND</button>
<br>
<button id="b8" type="button" class="ci">SOUND</button>
<br>
<button id="b9" type="button" class="ci">SOUND</button>
<br>
通过为每个按钮添加 id
让您的按钮彼此不同。这将允许您通过给相同的 id
到 <source>
标签将每个按钮映射到它自己的音频文件。示例:
<audio id="mysoundclip" preload="auto">
<source src="ci1.mp3" id="1"></source>
</audio>
<button type="button" class="ci" id="1">play</button>
<script type="text/javascript">
$("button.play").click(function() {
var id = $('this').data('id');
var audio = $('#mysoudclip #'+id)[0];
audio.play();
});
</script>
这是我根据 Shrinivas Shukla 和 whiteletter(下文)的线索得出的解决方案。
此代码同时播放 *wav 和 *mp3 文件:
<script type="text/javascript">
$('td.bb').click(function() { // add a same class to every button
var fileName = $(this).attr('id'); //fileName as id button
var audiot = new Audio("file/" +fileName+".mp3");
audiot.play();
var audiott = new Audio("file/" +fileName+".wav");
audiott.play();
});
注意:将声音文件命名为我拥有的每个按钮的 ID,并向每个按钮添加相同的 class - 在本例中:"bb"
这就是我想做的事情:
我有 30 个按钮。我希望当点击每个按钮时,它会播放不同的 mp3 文件。像这样http://www.soundjig.com/pages/soundfx/beeps.html
我只知道如何单击 1 个按钮来播放 1 个音频文件,如下所示:
<audio id="mysoundclip" preload="auto">
<source src="ci1.mp3"></source>
</audio>
<button type="button" class="ci">play</button>
<script type="text/javascript">
var audio = $("#mysoundclip")[0];
console.log(audio);
$("button.play").click(function() {
audio.play();
});
</script>
我不想将所有这些代码应用到所有按钮 - 有没有办法快速做到这一点?
感谢阅读!
您可以使用 JavaScript 提供的 Audio
class。
看看这个 fiddle。
这是片段。
var baseUrl = "http://www.soundjay.com/button/";
var audio = ["beep-01a.mp3", "beep-02.mp3", "beep-03.mp3", "beep-04.mp3", "beep-05.mp3", "beep-06.mp3", "beep-07.mp3", "beep-08b.mp3", "beep-09.mp3"];
$('button.ci').click(function() {
var i = $(this).attr('id').substring(1); //get the index of button
new Audio(baseUrl + audio[i - 1]).play(); //play corresponding audio
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<button id="b1" type="button" class="ci">SOUND</button>
<br>
<button id="b2" type="button" class="ci">SOUND</button>
<br>
<button id="b3" type="button" class="ci">SOUND</button>
<br>
<button id="b4" type="button" class="ci">SOUND</button>
<br>
<button id="b5" type="button" class="ci">SOUND</button>
<br>
<button id="b6" type="button" class="ci">SOUND</button>
<br>
<button id="b7" type="button" class="ci">SOUND</button>
<br>
<button id="b8" type="button" class="ci">SOUND</button>
<br>
<button id="b9" type="button" class="ci">SOUND</button>
<br>
通过为每个按钮添加 id
让您的按钮彼此不同。这将允许您通过给相同的 id
到 <source>
标签将每个按钮映射到它自己的音频文件。示例:
<audio id="mysoundclip" preload="auto">
<source src="ci1.mp3" id="1"></source>
</audio>
<button type="button" class="ci" id="1">play</button>
<script type="text/javascript">
$("button.play").click(function() {
var id = $('this').data('id');
var audio = $('#mysoudclip #'+id)[0];
audio.play();
});
</script>
这是我根据 Shrinivas Shukla 和 whiteletter(下文)的线索得出的解决方案。 此代码同时播放 *wav 和 *mp3 文件:
<script type="text/javascript">
$('td.bb').click(function() { // add a same class to every button
var fileName = $(this).attr('id'); //fileName as id button
var audiot = new Audio("file/" +fileName+".mp3");
audiot.play();
var audiott = new Audio("file/" +fileName+".wav");
audiott.play();
});
注意:将声音文件命名为我拥有的每个按钮的 ID,并向每个按钮添加相同的 class - 在本例中:"bb"