본문 바로가기

클릭한 오디오만 재생되고 현재 재생 중인 오디오를 정지시키는 기능

반응형

아래 코드는 클릭한 오디오만 재생되고, 다른 오디오는 정지됩니다.

또한 오디오가 끝나면 다음 오디오로 자동으로 넘어갑니다.

<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>HTML5 Audio</title>
</head>
<body>
    <audio class="Audio" controls>
      <source src="음악주소1" type="audio/mpeg">
    </audio>
    <audio class="Audio" controls>
      <source src="음악주소2" type="audio/mpeg">
    </audio>
    <audio class="Audio" controls>
      <source src="음악주소3" type="audio/mpeg">
    </audio>
<script>
const audioElements = document.querySelectorAll('.Audio');
let currentAudio = null;

function playAudio(index) {
  if (currentAudio !== null) {
    currentAudio.pause(); // 현재 재생 중인 오디오를 정지
  }
  currentAudio = audioElements[index]; // 현재 재생 중인 오디오 변경
  currentAudio.play(); // 새로운 오디오 재생
}

audioElements.forEach(function(audioElement, index) {
  audioElement.addEventListener('play', function() {
    audioElements.forEach(function(element) {
      if (element !== audioElement) {
        element.pause(); // 다른 오디오를 일시 정지
      }
    });
  });

  audioElement.addEventListener('ended', function() {
    if (index < audioElements.length - 1) {
      playAudio(index + 1); // 다음 오디오 재생
    }
  });

  audioElement.addEventListener('click', function() {
    playAudio(index); // 클릭한 오디오 재생
  });
});

// 초기에 첫 번째 오디오 재생
playAudio(0);
</script>
</body>
</html>

 

반응형

댓글


Copyright ⓒ SmartWeb All rights reserved.