Javascript html5游戏中的音效
我试着在游戏中用每一次点击来播放音效,但有时会播放声音,而其他的则不会 我正在使用下一个代码:Javascript html5游戏中的音效,javascript,html,html5-audio,Javascript,Html,Html5 Audio,我试着在游戏中用每一次点击来播放音效,但有时会播放声音,而其他的则不会 我正在使用下一个代码: <script> var hitSound = new Audio(); function playEffectSound() { hitSound = document.getElementById('effects'); hitSound.loop = false; hitSound.currentTime = 0; hitSound.pla
<script>
var hitSound = new Audio();
function playEffectSound()
{
hitSound = document.getElementById('effects');
hitSound.loop = false;
hitSound.currentTime = 0;
hitSound.play();
}
</script>
<audio id="effects" hidden>
<source src="sound/mp3/effect.mp3" type="audio/mpeg">
<source src="sound/wav/effect.wav" type="audio/wav">
</audio>
有什么想法吗?您可以使用以下代码播放音频
function playEffectSound(sound) {
//Does the sound already exist?
if (document.getElementById(sound) != null) {
document.getElementById(sound).play();
return;
}
//Create elements
var audioElement = document.createElement("audio");
var sourceElement = document.createElement("source");
sourceElement.src = sound + ".mp3";
sourceElement.type = "audio/mpeg";
var sourceElementWave = document.createElement("source");
sourceElementWave.src = sound + ".wav";
sourceElementWave.type = "audio/wav";
//Add sources to audio
document.body.appendChild(sourceElementWave);
document.body.appendChild(audioElement);
audioElement.setAttribute("id", sound);
audioElement.appendChild(sourceElement);
audioElement.loop = false;
audioElement.currentTime = 0;
audioElement.play();
}
您可以这样使用:playEffectSoundsounds/effect;它将播放sounds/effect.mp3或sounds/effect.wav您可以使用以下代码播放音频
function playEffectSound(sound) {
//Does the sound already exist?
if (document.getElementById(sound) != null) {
document.getElementById(sound).play();
return;
}
//Create elements
var audioElement = document.createElement("audio");
var sourceElement = document.createElement("source");
sourceElement.src = sound + ".mp3";
sourceElement.type = "audio/mpeg";
var sourceElementWave = document.createElement("source");
sourceElementWave.src = sound + ".wav";
sourceElementWave.type = "audio/wav";
//Add sources to audio
document.body.appendChild(sourceElementWave);
document.body.appendChild(audioElement);
audioElement.setAttribute("id", sound);
audioElement.appendChild(sourceElement);
audioElement.loop = false;
audioElement.currentTime = 0;
audioElement.play();
}
您可以这样使用:playEffectSoundsounds/effect;当您使用音频标签时,它会播放sounds/effect.mp3或sounds/effect.wav尝试在音频标签之后编写脚本,如果您在音频标签之前编写脚本,则会在播放音频时出现问题 我建议在页面末尾编写脚本,这是编写脚本的标准方法
每当你使用音频标签时,试着在音频标签之后写脚本,如果你在音频标签之前写脚本,它会在播放音频时出现问题 我建议在页面末尾编写脚本,这是编写脚本的标准方法
尝试每次点击添加一个新的var sound和sound.play,它将正常工作尝试每次点击添加一个新的var sound和sound.play,它将正常工作您有2个标签,忘记关闭第二个标签?@Cerbrus:第一个标签关闭在哪里?可能是您点击时文件还没有加载。您可以尝试将preload attr添加到audio标记中,但并非所有浏览器都支持它。@musefan,是的,这就是我的意思,第二个标记应该是,您可以指定目标平台吗?您有两个标记,忘记关闭第二个吗?@Cerbrus:第一个标记在哪里关闭?可能是您点击时文件尚未加载。您可以尝试将preload attr添加到audio标记中,但并非所有浏览器都支持它。@musefan,是的,这就是我的意思,第二个标记应该是,您可以指定目标平台吗?谢谢,但每次我们使用它时,它都需要下载声音。。。。。这不是很好的游戏练习。很酷,但不是我需要的:谢谢谢谢你,但每次我们使用它时都需要下载声音。。。。。这不是游戏的好习惯。很酷,但不是我需要的:谢谢你,但这对游戏没有帮助。@Solieman-我知道使用上面的代码不是好习惯,我只是在更正上面给出的代码。使用Sprite's of Sound确实是一个很好的练习。谢谢你,但这对游戏没有帮助。@Solieman-我知道使用上述代码不是一个好的练习,我只是更正了上面给出的代码。使用Sprite的声音是值得遵循的良好实践。尝试添加代码示例,提供参考或来源,或更详细地阐述,以向提问者提供足够的细节来尝试您的建议,或者至少为他们指出正确的方向。尝试添加代码示例,提供参考或来源,或者更详细地阐述,为提问者提供足够的细节来尝试你的建议——或者至少为他们指出正确的方向。