2

ヒットごとにゲームで効果音を再生しようとしていますが、サウンドが再生される場合と再生されない場合があります!!

私は次のコードを使用しています:

<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>

何か案は ?

4

3 に答える 3

0

次のコードを使用してオーディオを再生できます

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();
}

次のように使用できます: playEffectSound("sounds/effect"); そして、sounds/effect.mp3またはsounds/effect.wavのいずれかを再生します

于 2012-12-04T10:58:29.643 に答える
0

オーディオタグを使用しているときはいつでも、オーディオタグの後にスクリプトを書いてみてください。そのオーディオタグの前にスクリプトを書くと、オーディオの再生に問題が発生することがあります.

スクリプトを記述する標準的な方法である、ページの最後にあるスクリプトの記述をお勧めします。

http://jsfiddle.net/LyDWH/4/

<!DOCTYPE html>
<html>
<body>
<audio id="effects" hidden >
    <source src="http://www.w3schools.com/html/horse.mp3" type="audio/mpeg">
</audio>
        <div onclick= "playEffectSound();">Horse Click Me..!</div>
</body>
<script>
var hitSound = new Audio();
function playEffectSound()
{
    hitSound = document.getElementById('effects'); 
    hitSound.currentTime = 0;
    hitSound.play();    
}

</script>
</html>
​
于 2012-12-04T11:15:47.737 に答える
-1

ヒットごとに新しい var サウンドと sound.play() を追加してみてください。問題なく動作します

于 2013-04-24T20:42:40.513 に答える