video 태그 사용법을 연습했다.
비디오의 썸네일은 poster
속성에 이미지를 넣어줌으로써 지정할 수 있다.
<video src="videos/gone.mp4" id="video" class="screen" poster="img/poster.png"></video>
직접 동영상 플레이어를 만들어야하기 때문에 동영상의 재생과 정지 상태를 알아야 했다. 비디오가 정지 상태인지는 video.paused
로 알 수 있다.
비디오 재생(또는 정지) 버튼을 눌렀을 때, 비디오가 재생 중이라면 정지하고 정지 중이라면 재생해야 한다. 이는 play 메서드와 pause 메서드로 구현할 수 있다.
function toggleVideoStatus() {
if(video.paused) {
video.play(); // 비디오 재생하기
} else {
video.pause(); // 비디오 멈추기
}
}
동영상 플레이어의 재생바를 input[type:range]
로 구현했다. 최솟값은 0, 최댓값은 100으로 설정해 비디오의 총 시간(길이) 중 중 현재 재생된 시간의 비율로 value
를 잡아야 했다.
<input type="range" id="progress" class="progress" min="0" max="100" step="0.1" value="0" />
비디오 태그에 연결된 비디오의 총 길이는 video.duration
으로 알 수 있고, 현재 재생 중인 시점은 video.currentTime
으로 알 수 있다.
재생 바의 슬라이더 위치 즉, range의 value는 비디오 총 길이(video.duration)에 대한 현재 재생한 시점(video.currentTime)의 비율로 설정했다.
progress.value = (video.currentTime / video.duration) * 100;
슬라이더 위치가 임의로 변경된 경우 비디오의 재생 시점을 변경해줘야 했는데, 이는 range의 value에 비디오 총 길이(video.duration)를 곱한 비율로 설정했다.
video.currentTime = (+progress.value * video.duration) / 100;
click
: 비디오 태그가 차지하는 공간에 클릭 이벤트가 발생한 경우pause
: 비디오가 정지된 경우play
: 비디오가 재생된 경우timeupdate
: 비디오의 현재 재생 중인 시점이 바뀐 경우(계속 재생 중이거나 슬라이더를 임의로 조절했을 때)