使用输入完成音量滑块的简单播放/暂停切换?

时间:2014-03-31 15:30:37

标签: javascript jquery audio input

似乎无法弄清楚如何正确播放/暂停。我已经完成了音量控制工作,但是只要我添加新脚本并将其从自动播放中取出,它就无法正常工作。我试图创建的只是一个简单的播放/暂停按钮,甚至只是一个启用/禁用音频按钮(我知道那些是不同的)。什么是最好的方法呢?

HTML:

<audio id="song" src="assets/audio/supermariotheme.mp3">
</audio>
<button onClick="play()">play</button>
<input type="range" id="volume" min="0" max="1" step="0.1" value="1" />

JS:

$('#volume').on('change', function() {
    $('#song').prop("volume", this.value);
});

function play() {
    var audio = document.getElementById('song');
    if (audio.paused) {
        audio.play();
    }else{
        audio.currentTime = 0
    }
}

2 个答案:

答案 0 :(得分:2)

这是有效的:http://jsfiddle.net/Sqx48/

function play() {
    var audio = document.getElementById('song');
    if (audio.paused) {
        audio.play();
    } else {
        audio.pause();
    }
}

或者

function play() {
    var audio = document.getElementById('song');
    audio[audio.paused ? 'play' : 'pause']();
}

答案 1 :(得分:1)

我避免使用onClick="play()"属性。请改用jquery:

$("button").click(function(){
    var audio = $("#song")[0];
    if (audio.paused) {
        audio.play();
    }else{
        audio.currentTime = 0
    }
});