Javascript 单击按钮播放音频(无循环)
我有64个按钮,都有一个单独的音频文件。其中一半我想在单击时循环播放音频,其他人只播放一次文件。目前,我的代码强制所有人循环,所以我需要帮助找到一个解决方案,使一些人循环,而另一些人不循环 我已经编辑的例子,显示只有3个按钮,我想按钮3外汇,只有发挥一次,每次点击 JS: HTML:Javascript 单击按钮播放音频(无循环),javascript,html,function,audio,onclick,Javascript,Html,Function,Audio,Onclick,我有64个按钮,都有一个单独的音频文件。其中一半我想在单击时循环播放音频,其他人只播放一次文件。目前,我的代码强制所有人循环,所以我需要帮助找到一个解决方案,使一些人循环,而另一些人不循环 我已经编辑的例子,显示只有3个按钮,我想按钮3外汇,只有发挥一次,每次点击 JS: HTML: 我知道目前所有3个按钮都链接到设置为循环的声音功能,但是我不知道如何在没有循环的情况下创建另一个功能,因为循环是在createAudio中声明的,这是来自其他地方的代码,我不确定它是如何工作的。您可以在播放声音时,
我知道目前所有3个按钮都链接到设置为循环的声音功能,但是我不知道如何在没有循环的情况下创建另一个功能,因为循环是在createAudio中声明的,这是来自其他地方的代码,我不确定它是如何工作的。您可以在播放声音时,而不是在创建声音时,在相同的功能中设置声音是否为循环。这也允许你有时循环某个声音,有时只播放一次,而不是一直播放同一种声音 JS: HTML:
嗨,又是你问了类似的问题。你能告诉我你是如何调用creaetAudio函数的吗?我认为这可以在函数内完成。这非常有效,谢谢你的帮助!但是,我没有创建true/false,而是创建了一个新函数,并且必须将其更改为audio[id].loop=true;
var audio = [];
var isPlaying = [];
function sound(id){
if(isPlaying[id]){
audio[id].pause();
isPlaying[id] = false;
audio[id].currentTime = 0;
}
else{
audio[id].play();
isPlaying[id] = true;
audio[id].currentTime = 0;
}
}
function createAudio(src,i){
audio[i] = new Audio();
audio[i].src = src;
audio[i].loop = true;
isPlaying[i] = false;
}
var mySources = ['audio/drums/1.wav','audio/bass/2.wav','audio/fx/3.wav'];
<img class="button" src="images/button.png" onclick="sound(1);"/>
<img class="button" src="images/button.png" onclick="sound(2);"/>
<img class="button" src="images/button.png" onclick="sound(3);"/>
function sound(id, loop){
audio[id].loop = loop;
/* ... */
}
function createAudio(src,i){
audio[i] = new Audio();
audio[i].src = src;
isPlaying[i] = false;
}
<img class="button" src="images/button.png" onclick="sound(1, true);"/>
<img class="button" src="images/button.png" onclick="sound(2, false);"/>
<img class="button" src="images/button.png" onclick="sound(3, true);"/>