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

HTML DOM Video readyState 속성 완벽 정리 – 반환값 의미와 예제

HTML DOM의 Video readyState 속성은 현재 비디오의 준비 상태(ready state)를 나타내는 숫자 값을 반환합니다. 이 속성을 활용하면 비디오가 재생 가능한 상태인지, 데이터 로딩이 어느 단계까지 진행되었는지 확인할 수 있습니다.

문법(Syntax)

readyState 속성의 기본 사용 문법은 다음과 같습니다.

mediaObject.readyState

반환값(Return Values)

readyState 속성은 아래 표와 같이 0부터 4까지의 숫자 값을 반환하며, 각 값은 비디오의 로딩 및 재생 준비 단계를 의미합니다.

  • 0 (HAVE_NOTHING) – 사용할 수 있는 정보가 전혀 없는 상태입니다.
  • 1 (HAVE_METADATA) – 미디어의 메타데이터가 준비되어 비디오 탐색(seek)이 가능한 상태입니다.
  • 2 (HAVE_CURRENT_DATA) – 현재 재생 위치의 데이터는 존재하지만, 다음 프레임을 재생하기에는 데이터가 부족한 상태입니다.
  • 3 (HAVE_FUTURE_DATA) – 현재 위치의 데이터와 함께 최소 두 프레임 이상의 추가 데이터가 확보된 상태입니다.
  • 4 (HAVE_ENOUGH_DATA) – 재생을 시작할 수 있을 만큼 충분한 데이터가 준비된 상태입니다.

이제 HTML DOM Video readyState 속성의 실제 동작을 확인할 수 있는 예제를 살펴보겠습니다.

예제(Example)

<!DOCTYPE html>
<html>
<head>
<title>HTML DOM Video readyState</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-readyState</legend>
            <video id="demo" width="320" controls><source src="" type="video/mp4"></video><br>
            <input type="button" onclick="setTrackDetails()" value="Set Source">
            <input type="button" onclick="getTrackDetails()" value="Get ready State">
            <div id="divDisplay">
            </div>
        </fieldset>
    </form>
    <script>
        var divDisplay = document.getElementById("divDisplay");
        var demo = document.getElementById("demo");
        var srcOfMedia = 'https://www.tutorialspoint.com/html5/foo.mp4';
        function getTrackDetails() {
            divDisplay.textContent = 'ready State: '+demo.readyState;
        }
        function setTrackDetails() {
            demo.src = srcOfMedia;
            demo.load();
        }
    </script>
</body>
</html>

실행 결과(Output)

위 예제를 실행하면 버튼 클릭 시점의 비디오 준비 상태를 화면에서 바로 확인할 수 있습니다.

1. 소스가 지정되지 않은 경우

비디오 소스가 설정되지 않은 상태에서 'Get ready State' 버튼을 클릭하면, 데이터가 없으므로 0(HAVE_NOTHING)이 출력됩니다.

HTML DOM Video readyState 속성 완벽 정리 – 반환값 의미와 예제

2. 소스가 지정된 경우

'Set Source' 버튼으로 비디오 소스를 설정한 뒤 'Get ready State' 버튼을 클릭하면, 데이터 로딩 진행 상황에 따라 1~4 사이의 값이 출력됩니다.

HTML DOM Video readyState 속성 완벽 정리 – 반환값 의미와 예제

이처럼 readyState 속성은 스트리밍 환경이나 대용량 영상 처리 시, 재생 가능 여부를 판단하는 로직을 구현할 때 유용하게 활용됩니다.