플레이어 제어 스크립트 (VG Controller)
개요
플레이어 제어 스크립트(VG Controller)는 고객사의 웹사이트에 iframe으로 삽입된 Kollus 플레이어와 통신하여,
재생 상태를 제어하거나 실시간 이벤트를 수신할 수 있게 해주는 JavaScript 라이브러리입니다.
주요 특징
- 통합 제어: 플레이어 종류에 관계없이 동일한 코드로 제어할 수 있습니다.
- 간결한 구현: 별도의 외부 라이브러리 없이 독립적으로 동작합니다.
- 직관적 사용: 단순화된 메서드와 이벤트 리스너 구조를 지원합니다.
용어 정의
본 가이드에서 사용하는 주요 기술 용어와 플레이어 버전에 대한 정의입니다.
| 용어 | 설명 |
|---|---|
| VideoGateway | 시청자(End User)의 요청에 따라 재생 데이 터를 전달하는 서버 |
| 플레이어 ID | 시청자 기기 고유 식별자 |
| 하드웨어 ID | 시청자 기기 시리얼 넘버 |
| HLS Fragment | HLS(HTTP Live Streaming) 프로토콜 기반 재생 시 전체 영상을 잘게 나눈 최소 단위의 미디어 파일 |
| v3 | Html5 Player for PC (hybrid): 암호화된 콘텐츠를 Microsoft Edge 또는 Chrome 45 이상의 브라우저에서 재생할 때 사용되는 하이브리드 HTML5 플레이어 |
| v4 | Html5 Player for All: 비암호화 콘텐츠 전용 비설치형 HTML5 Player |
| v5 | Web Player: 설치형과 비설치형의 장점을 결합한 통합 웹 플레이어 |
ℹ️참고
플레이어별 상세 설명은 Kollus 플레이어 종류 문서를 참고하세요.
라이브러리 설치 및 초기화
먼저 클라이언트 스크립트를 로드하고, 제어할 iframe을 대상으로 하는 인스턴스를 생성합니다.
기본 구현 예제
<script src="/path/to/vg-controller-client.1.1.16.min.js"></script>
<script>
window.onload = function () {
try {
var controller = new VgControllerClient({
target_window: document.getElementById('child').contentWindow,
});
// 이벤트 리스너 등록 및 메서드 호출
} catch (e) {
console.error(e);
}
};
</script>
<body>
<iframe id="child" src="http://v.kr.kollus.com/..."></iframe>
</body>
주의 사항
- 대상 지정:
target_window속성에는 반드시 대상iframe요소의contentWindow객체를 직접 전달해야 합니다. - 브라우저 호환성: 본 라이브러리는
window.postMessageAPI를 사용하여 통신합니다. 해당 API를 지원하지 않는 오래된 브라우저에서는 작동하지 않습니다. - 다중 플레이어 제어: 한 페이지 내에 여러 개의 플레이어(
iframe)가 존재할 경우,iframe의 ID를 구분하여 개별 인스턴스를 생성해야 합니다.
예외 코드
초기화 및 통신 과정에서 오류 발생 시 반환되는 코드입니다.
| 코드 | 메시지 | 설명 |
|---|---|---|
-1 | * | postMessage 통신 중 발생한 예외 |
-99 | player type is not defined | 플레이어 종류가 명시되지 않음 |
-99 | player type must be one of v2, v3, v4 and flash | 지원하지 않는 플레이어 |
-99 | this browser does not support postMessage | 브라우저가 postMessage API를 지원하지 않음 |
-99 | listener is not callable | 등록하려는 이벤트 리스너가 유효한 함수가 아님 |
CDN 경로
플레이어 제어 스크립트(VG Controller)는 CDN을 통해 제공됩니다.
최신 버전
<script src="https://file.kollus.com/vgcontroller/vg-controller-client.latest.min.js"></script>
특정 버전
<script src="https://file.kollus.com/vgcontroller/vg-controller-client.1.1.4.min.js"></script>
보안 강화 (Integrity 속성)
CDN을 통한 라이브러리 로드 시, 파일의 변조 여부를 검증하기 위해 SRI(Subresource Integrity) 속성을 사용하는 것이 권장됩니다.
<script src="https://file.kollus.com/vgcontroller/vg-controller-client.1.2.3.min.js"
integrity="sha256-esUCCL4RPYMS8AR+Sl3lNrFa5M+zgpt4Gb77qtz66OY="
crossorigin="anonymous">
</script>
ℹ️참고
버전별 Integrity 속성(Integrity Code)은 링크를 참고하세요.
이벤트 리스닝
controller.on() 메서드를 사용하여 플레이어에서 발생하는 다양한 이벤트를 실시간으로 수신할 수 있습니다.
단일 리스너 등록
controller.on('event_name', function(param) {
// 이벤트 리스너
});