使用SpaceBar播放和暂停声音

时间:2013-05-05 14:29:10

标签: javascript audio

我正在尝试用JS播放和暂停声音。

声音已经播放,但我希望能够暂停和取消它。

case 32: //SpaceBar
  if (play){
    $("#leson").pause();
    play = false;
  } else {
    $("#leson").play();
    play = true;
  }
break;

在我写这篇文章之前:

<embed id="leson" src="edito.wav" autostart="true" hidden="true"
loop="false">

我在这里做错了什么? 感谢。

2 个答案:

答案 0 :(得分:3)

embed更改为HTML5 audio。而autoplay代替autostart。 我的解决方案不使用jQuery。

请参阅下面的代码并检查它是否有效here。 您需要单击结果页面以聚焦页面,并能够使用空格键播放/暂停。

<audio id="leson" src="edito.wav" autoplay="true" hidden="true" loop="false"/>
<script>
var play = true;

var myAudio = document.getElementById("leson");

function onKeyDown(event) {
        switch (event.keyCode) {
            case 32: //SpaceBar                    
                if (play) {
                    myAudio.pause();
                    play = false;
                } else {
                    myAudio.play();
                    play = true;
                }
                break;
        }
  return false;
}

window.addEventListener("keydown", onKeyDown, false);
</script>

答案 1 :(得分:0)

audio个元素有play and pause methods

var myAudio = document.getElementById('myAudioElement');
myAudio.play();
myAudio.pause();

看到你正在使用jQuery,你需要从jQuery对象中获取DOM元素。你应该这样做:

$("#leson")[0].play();
$("#leson")[0].pause();