Воспроизведение аудио и остановка по нажатию кнопки - PullRequest
0 голосов
/ 06 июля 2018

Я пытался заставить кнопку проигрывать и останавливать звук при нажатии, но не могу заставить его работать. Нужна помощь, пожалуйста

let audio, playBtn;
playBtn = document.querySelector("#playPauseBtn");

const playPause = () => {
  audio = new Audio();
  audio.paused = true;
  audio.src = "music/amor.mp3";
  if (audio.paused === true) {
    audio.play();
    audio.paused = false;
    playBtn.innerHTML = "Pause";

  } else if (audio.paused === false) {
    audio.pause();
    playBtn.innerHTML = "Play";

  }
}
playBtn.addEventListener("click", playPause);

1 Ответ

0 голосов
/ 06 июля 2018

Как указал @christopher_pk, вы создаете новый аудиообъект каждый раз, который будет сбрасывать звук в начало при каждом нажатии кнопки. Вместо этого объявите звук снаружи:

let audio, playBtn;
playBtn = document.querySelector("#playPauseBtn");

audio = new Audio();
audio.paused = true;
audio.src = "https://www.random.org/audio-noise/?channels=2&volume=100&rate=16000&size=8&date=2018-07-06&format=wav&deliver=browser";

const playPause = () => {
    if (audio.paused === true) {
        audio.play();
        audio.paused = false;
        playBtn.innerHTML = "Pause";
    } else if (audio.paused === false) {
        audio.pause();
        playBtn.innerHTML = "Play";
    }
}
playBtn.addEventListener("click", playPause);
<button id="playPauseBtn">Play</button>
...