Computer >> 컴퓨터 >  >> 프로그래밍 >> HTML

HTML DOM 비디오 played 속성 – 재생 구간 정보 확인하기

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?'(남은 무료 시청 시간) 버튼을 클릭하면 아래와 같이 결과가 표시됩니다.

HTML DOM 비디오 played 속성 – 재생 구간 정보 확인하기

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

HTML DOM 비디오 played 속성 – 재생 구간 정보 확인하기

정리

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