비디오 텍스트 트랙을 자바스크립트로 생성하고 컨트롤하기

비디오 텍스트 트랙은 웹 비디오에 텍스트를 추가하여 사용자에게 부가 정보를 제공하는 기능입니다. 이 기능을 자바스크립트로 생성하고 컨트롤하는 방법에 대해 알아보겠습니다.

1. 비디오 요소와 텍스트 트랙 생성

우선 HTML5의 <video> 요소를 생성하고, 비디오 파일을 추가합니다. 그리고 아래와 같이 텍스트 트랙 요소를 생성합니다.

<video controls>
  <source src="video.mp4" type="video/mp4">
  <track id="captions" kind="captions" label="Korean captions" src="captions.vtt" srclang="ko" default>
</video>

위의 코드에서 track 요소는 id, kind, label, src, srclang 속성을 가지고 있습니다. 여기서 id는 트랙의 고유 식별자이며, kind는 트랙의 종류를 나타내는 값입니다. label은 사용자에게 표시할 트랙 이름이며, src는 텍스트 트랙 파일의 경로를 지정합니다. 마지막으로 srclang은 트랙의 언어를 지정합니다.

2. 텍스트 트랙 컨트롤

이제 자바스크립트를 사용하여 텍스트 트랙을 컨트롤할 수 있게 됐습니다. 아래 코드는 비디오 요소와 텍스트 트랙 요소를 선택하고, 필요한 기능을 구현한 예시입니다.

// 비디오 요소와 텍스트 트랙 요소를 선택합니다.
const video = document.querySelector('video');
const track = document.getElementById('captions').track;

// 텍스트 트랙 활성화 여부를 확인하고 트랙을 토글합니다.
function toggleTrack() {
  if (track.mode === 'showing') {
    track.mode = 'disabled';
  } else {
    track.mode = 'showing';
  }
}

// 비디오 재생 시간이 변경될 때마다 텍스트 트랙을 업데이트합니다.
function updateTrack() {
  const currentTime = video.currentTime;
  // 트랙의 각 시간마다 텍스트를 추가 또는 제거하는 로직을 작성합니다.
}

// 비디오 재생 시간 변경 이벤트를 수신합니다.
video.addEventListener('timeupdate', updateTrack);

// 텍스트 트랙을 토글하는 이벤트를 수신합니다.
track.addEventListener('cuechange', () => {
  // 텍스트 트랙 변경 시 필요한 로직을 작성합니다.
});

위의 코드는 toggleTrack 함수를 통해 텍스트 트랙을 활성화 또는 비활성화할 수 있고, updateTrack 함수를 통해 비디오 재생 시간에 따라 텍스트 트랙을 업데이트합니다. 또한 timeupdate 이벤트와 cuechange 이벤트를 감지하여 필요한 로직을 수행합니다.

마무리

이렇게 자바스크립트로 비디오 텍스트 트랙을 생성하고 컨트롤하는 방법을 알아보았습니다. 이를 통해 웹 비디오에 텍스트 정보를 추가하여 더욱 풍부한 사용자 경험을 제공할 수 있습니다.

#비디오텍스트트랙 #자바스크립트컨트롤