0

押すと短い音が鳴るボタンがあります。初めて押すと動作し、音が鳴ります。次回およびそれ以外のすべての時間は機能しません(ページをリロードするまで、それからもう一度機能します)。私のコードは以下の通りです:

audio.stop();を追加してみました。audio.play();の前 それがそれを修正することを望んでいたが、それはそれをまったく機能させなかった。

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>HTML5</title>
</head>
<body>

<audio>
<source src="buzzer.mp3" type="audio/mpeg">
</audio>

<input type="submit" id="buttonPlaySound" value="Play Sound">

<script>
var audio = document.getElementsByTagName("audio")[0];

buttonPlaySound.onclick = function () { 
    audio.play();
};
</script>
</body>
</html>
4

4 に答える 4

1

別の解決策であり、一部のエージェントがリモートからファイルをリロードするために効率の問題が発生しにくいのは、例で呼び出すaudio.currentTime = 0前に呼び出すことaudio.play() です。これは次のようになります。

buttonPlaySound.onclick = function () { 
    audio.currentTime = 0;
    audio.play();
};

編集
ChromeではcurrentTime最初は読み取り専用のようです。したがって、これは機能しません。回避策があり
ます。オーディオオブジェクトを手動で設定srcすると(:と同じ値でもaudio.src = audio.srccurrentTime設定可能になり、上記のソリューションは期待どおりに機能します。

于 2013-02-13T05:32:08.287 に答える
0

このように試してみてください。

<input type="submit" id="buttonPlaySound" value="Play Sound" onclick ="Play()">
<input type="submit" id="buttonPlaySound" value="Play Sound" onclick ="Pause()">

<script>
var audio = document.getElementsByTagName("audio")[0];
var played = false;

    function play() 
    {
        audio.play();
    }
    function pause()
    {
       if(played)
       {
           audio.pause();
       }
       audio.play();
       played = true;
    };
</script>
于 2013-02-13T04:40:43.313 に答える
0

これは、HTML5オーディオが一度再生され、その状態が再生されているため、再度再生されないためです。

あなたはこれを試すことができます:

var audio = document.getElementsByTagName("audio")[0];
var played = false;

buttonPlaySound.onclick = function () { 
    if (played) {
        audio.pause();
    }
    audio.play();
    played = true;
};
于 2013-02-13T04:39:55.477 に答える
0

audio.load();を追加します。audio.play();の前 私のためにそれを修正しました。

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>HTML5</title>
</head>
<body>

<audio>
<source src="buzzer.mp3" type="audio/mpeg">
</audio>

<input type="submit" id="buttonPlaySound" value="Play Sound">

<script>
var audio = document.getElementsByTagName("audio")[0];

buttonPlaySound.onclick = function () { 
    audio.load();
    audio.play();
};
</script>
</body>
</html>
于 2013-02-13T04:49:09.997 に答える