Запуск и остановка аудио в Javascript - PullRequest
5 голосов
/ 08 февраля 2011

У меня есть функция, связанная с событием onClick. Это должно играть песню. Если песня уже воспроизводится, она должна остановить текущую песню и начать воспроизведение новой. Единственная проблема заключается в том, что, насколько я знаю, существует только метод pause , и это означает, что предыдущая песня возобновится с позиции паузы, а не с начала. Есть ли способ обойти это (например, метод .stop ())?

Вот мой код:

var currSong="";

function playSong(newSong){         
        alert(newSong);
        if (newSong != ""){
            if(currSong != "" ) {
                document.getElementById(currSong).pause();
            }           
            document.getElementById(newSong).play();
            currSong = newSong;
        }
}

1 Ответ

6 голосов
/ 08 февраля 2011

Из документации MDC для элемента audio видно, что правильный способ сделать это - установить свойство currentTime:

function playSong(newSong){         
    alert(newSong);
    if (newSong != ""){
        if(currSong != "" ) {
            document.getElementById(currSong).pause();
        }           
        var newSongEl = document.getElementById(newSong);
        newSongEl.currentTime = 0;
        newSongEl.play();
        currSong = newSong;
    }
}

Также, было бы лучше сохранить соответствующий элемент в currSong, а не в его идентификаторе, если только вы не используете идентификатор для чего-то другого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...