2017-05-31 19 views
0

クリックしたときにオーディオトラックをループするonmousedownイベントを使用してボタンを作成しました。私は、同じボタンがクリックされたときにオーディオループを終了しようとしています。私はonmouseupイベントを試みましたが運はありません。 (私はJavaScriptに新たなんだ)onmousedownイベントの終了(onmouseup?)

<script> var one = new Audio(); one.src = "files/audio/one.wav"; one.loop = true; </script> 

<img class="item" src="files/button.png" onmousedown="one.play()" onmouseup="one.stop()"/> 
+0

'one.stop()'を 'one.pause()'に変更してみてください。オーディオ用に '.stop()'メソッドはありません。 https://stackoverflow.com/questions/14834520/html5-audio-stop-function – yuriy636

+0

fyi 'onmouseup'は2回目のクリックではなく、現在のクリックを解放するときにトリガされます。 – NightKn8

答えて

1

あなたのクリックを追跡するだけclickイベントをリッスンするvarを使用してみてください:

JS

var one = new Audio(); 
one.src = "files/audio/one.wav"; 
one.loop = true; 
var isPlaying = false; 

function manage(){ 
    if(isPlaying){ 
    one.pause(); 
    one.currentTime = 0; 
    isPlaying = false; 
    } 
    else{ 
    one.play(); 
    isPlaying = true; 
    } 
} 

HTML

<img class="item" src="files/button.png" onclick="manage()"/> 
+0

素晴らしい作品です!今、私はちょうどその前のポイントからではなく、再びクリックしたときにオーディオファイルを再起動させる方法を見つけようとしています。私は 'audio.currentTime = 0'を試しましたが、動作していないようです。おそらく私はそれを間違って使っています。 –

+1

'one.currentTime = 0;'を使う必要があります。私は私の答えでそれを編集しました。 – Zenoo

+0

それはうまくいきました。 –

関連する問題