HTML DOM의 video 요소에서 played 속성은 TimeRanges 객체를 반환합니다. 이 객체에는 사용자가 실제로 재생한 구간의 길이와 시작 위치(start), 끝 위치(end)에 대한 정보가 담겨 있습니다.
문법(Syntax)
played 속성은 다음과 같은 형태로 사용하며, TimeRanges 객체를 반환합니다.
mediaObject.played
TimeRanges 객체 이해하기
반환된 TimeRanges 객체는 다음과 같은 멤버를 제공합니다.
- length: 재생된 시간 범위(구간)의 개수를 반환합니다.
- start(index): 지정한 인덱스 구간의 시작 시점(초 단위)을 반환합니다.
- end(index): 지정한 인덱스 구간의 끝 시점(초 단위)을 반환합니다.
일반적으로 동영상은 중간에 일시정지 후 다시 재생할 수 있으므로, 재생 구간이 여러 개 존재할 수 있습니다. 각 구간은 인덱스로 접근하며, 첫 번째 구간은 start(0), end(0)으로 확인할 수 있습니다.
예제(Example)
다음은 Video played 속성을 활용한 예제입니다. 동영상을 자동 재생하고, 버튼을 클릭하면 남은 무료 시청 시간을 화면에 표시합니다.
<!DOCTYPE html>
<html>
<head>
<title>HTML DOM Video played</title>
<style>
* {
padding: 2px;
margin:5px;
}
form {
width:70%;
margin: 0 auto;
text-align: center;
}
input[type="button"] {
border-radius: 10px;
}
</style>
</head>
<body>
<form>
<fieldset>
<legend>HTML-DOM-Video-played</legend>
<video id="demo" width="320" controls><source src="https://www.tutorialspoint.com/html5/foo.mp4" type="video/mp4"></video><br>
<input type="button" onclick="getTrackDetails()" value="How much free view time is left?">
<div id="divDisplay"></div>
</fieldset>
</form>
<script>
var divDisplay = document.getElementById("divDisplay");
var demo = document.getElementById("demo");
demo.autoplay = true;
var limit = 5;
function getTrackDetails() {
divDisplay.textContent = 'You have '+(limit - demo.played.end(0))+' seconds left';
}
</script>
</body>
</html>출력(Output)
동영상이 재생되는 상태에서 'How much free view time is left?'(남은 무료 시청 시간) 버튼을 클릭하면 아래와 같이 결과가 표시됩니다.

동영상을 몇 초간 재생한 뒤 같은 버튼을 클릭하면, demo.played.end(0) 값이 증가하여 남은 시간이 줄어든 것을 확인할 수 있습니다.

정리
played 속성은 미디어의 전체 길이(duration)나 현재 재생 위치(currentTime)와 달리, 사용자가 실제로 시청한 구간을 기준으로 정보를 제공한다는 점이 특징입니다. 이를 활용하면 시청 시간 제한, 광고 시청 검증, 학습 진도율 계산 등 다양한 기능을 구현할 수 있습니다.