Воспроизведение аудио и перезапустить его кнопке

Я хочу перезапустить аудиофайл в аудиоплеере HTML5. Я определил аудиофайл и .

<audio id="audio1" src="01.wav"></audio>
<button onClick="play()">Play</button>

когда я нажимаю play кнопка аудиофайл начинает воспроизведение, но когда я снова нажимаю кнопку, аудиофайл не останавливается и не будет воспроизводиться до тех пор, пока не достигнет конца файла.

function play() {
    document.getElementById('audio1').play();
}

есть ли способ, который позволил бы мне перезапустить аудиофайл, когда я нажимаю кнопку с помощью onclick вместо того, чтобы ждать песню остановить?

2 ответов


чтобы просто перезапустить песню, вы бы сделали:

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

скрипка

чтобы переключить его, как в аудио останавливается при нажатии снова, и когда нажмите в другой раз он перезапускается с самого начала, вы бы сделать что-то вроде :

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

скрипка


soundManager.setup({
preferFlash: false,
//, url: "swf/"
onready: function () {
    soundManager.createSound({
        url: [
            "http://www.html5rocks.com/en/tutorials/audio/quick/test.mp3", "http://www.html5rocks.com/en/tutorials/audio/quick/test.ogg"
        ],
        id: "music"
    });
    soundManager.createSound({
        url: [
            "http://www.w3schools.com/html/horse.mp3", 
        ],
        id: "horse"
    });
    soundManager.play("music"); 
}

}).beginDelayedInit ();

и чтобы запустить лошадь и приостановить все другие звуки, в настоящее время играет в событие click:

$("#horse").click(function () {
soundManager.stopAll();
soundManager.play("horse");

});