Posts

비디오 건너뛰기와 건너뛰기 제한하기

영상의 일부를 건너뛰는 방법과 건너뛰기를 제한하는 방법을 알아본다.

영상 건너뛰기

1
document.querySelector('video').currentTime = document.querySelector('video').duration;

<video> 요소의 현재 재생 위치를 <video>의 전체 길이값으로 수정한다.
비디오 플레이어의 재생 바를 끝으로 옮기는 것과 같다. 이로 인해 비디오가 바로 끝난 상태가 된다.

영상 건너뛰기 제한하기

1
2
3
4
5
6
7
8
var m = 30;
let video = document.getElementById("testVideo");

video.addEventListener("seeking", function () {
    if (video.currentTime > (m + 5)) {
        video.currentTime = m; // 강제로 처음으로 이동
    }
});

document.getElementById(“testVideo”);

document.getElementById() 메서드는 주어진 문자열과 일치하는 id 속성을 가진 요소를 찾고 이를 나타내는 Element 객체를 반환한다. Id는 문서 내에서 유일해야 하기 때문에 특정 요소를 빠르게 찾을 수 있다.

<script>
function changeColor(newColor) {
  var elem = document.getElementById("para");
  elem.style.color = newColor;
}
</script>

<html>
  <head>
    <title>getElementById 예제</title>
  </head>
  <body>
    <p id="para">어떤 글</p>
    <button onclick="changeColor('blue');">blue</button>
    <button onclick="changeColor('red');">red</button>
  </body>
</html>

blue 버튼을 클릭하면 id가 para인 <p> 부분의 텍스트가 푸른색으로 변경되고, red 버튼을 클릭하면 빨간색으로 변경된다.
즉, 위 코드는 HTML 문서에서 id가 testVideo인 요소를 찾아 해당 <video> 요소의 객체를 video 변수에 저장한다. 이후 video 변수를 통해 id가 testVideo인 <video>를 조작할 수 있다.

video.addEventListener(“seeking”, function () { … })

DOM이 모두 로드된 후, 사용자가 비디오를 건너뛰려고 seeking 할 때 function()이 실행되도록 한다.

seeking

사용자가 미디어 재생 시 타임 라인에서 재생 위치를 이동할 때 실행되는 이벤트다.

if (video.currentTime > (m + 5)) { video.currentTime = m; }

사용자의 현재 재생 시간이 m + 5보다 크면 강제로 현재 재생 위치를 m으로 이동시킨다.

m + 5

만약 사용자의 마지막 영상 위치 (이하 mark)를 일정 시간마다 currentTime으로 변경하도록 구현했다고 가정하자.
해당 시간마다 currentTime으로 mark를 덮어쓰지만 오차가 있을 수 있기 때문에 + 5를 해서 사용자가 mark 기준 5초 이상 건너뛰지 못하도록 제한한다.

이 포스트는 저작권자의 CC BY 4.0 라이센스를 따릅니다.