Web Player Controller
개요
Web Player Controller(구 VG Controller)는 고객사의 웹사이트에 iframe으로 삽입된 Kollus 플레이어와 통신하여,
재생 상태를 제어하거나 실시간 이벤트를 수신할 수 있게 해주는 JavaScript 라이브러리입니다.
주요 특징
- 통합 제어: 플레이어 종류와 관계없이 단일 규격으로 제어 가능합니다.
- 독립적 구동: 별도의 외부 라이브러리 의존성 없이 독립적으로 동작합니다.
- 이벤트 기반 구조: 메서드 호출 및 실시간 이벤트 리스너 구조를 지원합니다.
용어 정의
이 문서에서 사용하는 주요 기술 용어와 플레이어 표기에 대한 정의입니다.
| 용어 | 설명 |
|---|---|
| 비디오 게이트웨이 | 시청자 요청에 따라 재생 데이터 및 인증 정보를 전달하는 서버 |
| 플레이어 ID | Kollus 플레이어 고유 ID |
| 하드웨어 ID | 하드웨어 ID (Windows 환경 등 식별 가능한 값이 존재하는 경우 제공) |
| HLS Fragment | HLS(HTTP Live Streaming) 프로토콜 기반 재생 시 전체 영상을 분할한 최소 단위의 미디어 세그먼트 파일 |
| v3 | HTML5 Player for PC (Hybrid): Microsoft Edge 또는 Chrome 45 이상에서 암호화 콘텐츠 재생 시 적용되는 하이브리드 HTML5 플레이어 |
| v4 | HTML5 Player for All: 비암호화 콘텐츠 전용 비설치형 HTML5 플레이어 |
| v5 | Web Player: 설치형과 비설치형의 장점을 결합한 차세대 통합 웹 플레이어 |
플레이어 안내
Kollus 플레이어에 대한 상세 설명은 아래 문서를 참고하세요.
라이브러리 설치 및 초기화
클라이언트 스크립트를 로드한 후, 제어 대상(iframe)을 지정하여 인스턴스를 생성합니다.
기본 구현 예제
<script src="https://file.kollus.com/vgcontroller/vg-controller-client.latest.min.js"></script>
<script>
window.onload = function () {
try {
var controller = new VgControllerClient({
target_window: document.getElementById('child').contentWindow,
});
// Register event listeners and call methods
} catch (e) {
console.error(e);
}
};
</script>
<body>
<iframe id="child" src="https://v.kr.kollus.com/{MEDIA_CONTENT_KEY}..."></iframe>
</body>
주의 사항
- 대상 지정:
target_window속성에는 반드시iframe요소의contentWindow객체를 전달해야 합니다. - 브라우저 호환성: 이 라이브러리는
window.postMessageAPI를 사용하여 통신합니다. 해당 API를 지원하지 않는 브라우저에서는 작동이 제한됩니다. - 다중 플레이어 제어: 페이지 내 여러 개의 플레이어(
iframe)가 존재할 경우, 각iframeID별로 개별 인스턴스를 생성해야 합니다.
예외 코드
초기화 및 통신 과정에서 발생할 수 있는 에러 코드입니다.
| 코드 | 메시지 | 설명 |
|---|---|---|
-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 경로
Web Player 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>
보안 강화 (SRI 적용)
라이브러리 변조 방지를 위한 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)은 CDN 목록을 참고하세요.
이벤트 리스닝
controller.on() 메서드를 활용하여 플레이어의 상태 변화 및 재생 이벤트를 실시간으로 수신합니다.
리스너 등록 방식
단일 리스너
controller.on('event_name', function(param) {
// Register event listener
});
다중 리스너
controller.on('event_name', function(param) {
// First listener
});
controller.on('event_name', function(param) {
// Second listener
});
// Execute all listeners when the event is fired