V/G Controller
V/G Controllerย
Latest version 1.3.0
๊ฐ์
Kollus VG Controller๋ Videogateway๋ก ์ ๊ณต๋๋ ๋ฏธ๋์ด์ ์ผ๋ถ ์ปจํธ๋กค์ ๊ณ ๊ฐ์ฌ ์น์ฌ์ดํธ ๋ด์์ ๊ตฌํ ํ ์ ์๋๋ก ์ง์ ํ๋ Javascript library์ ๋๋ค. Kollus VG Controller๋ ๋ค์๊ณผ ๊ฐ์ ํน์ง์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
Videogateway์์ ์๋์ผ๋ก ์คํ๋๋ ํ๋ ์ด์ด์ ํ์ ์ ๊ด๊ณ์์ด ๋์ผํ ์ฝ๋๋ก ์ ์ด ๊ฐ๋ฅ
๊ฐ๋จํ ์ค์น + ์ฌ์ด ์ฌ์ฉ๋ฐฉ๋ฒ
ํ๋ ์ด์ด์ ๊ฐ์ง ์คํ์ ๊ณ ๋ฏผํ ํ์๊ฐ ์์
์๋ํํฐ ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํ์์น ์์
๋ฉ์๋์ ์ด๋ฒคํธ ๋ชฉ๋ก ์ด๋ฆ ์์ ํ๊ธฐ๋๋ V3, V4 Player(1)ย ๋ฑ์ Player๋ฅผ ์๋ฏธํฉ๋๋ค.
์์ํ๊ธฐ
VgControllerClient
(๊ณ ๊ฐ์ฌ html page์ ์ฝ์ )
์๋ ์์ ์ฝ๋๋ฅผ ์์์ด ๋ณด์ฌ์ง html page์ ์ ์ฉํ์๋ฉด ๋ฉ๋๋ค.ย ย
...
<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,
});
// ์ฌ๊ธฐ์๋ถํฐ ์ด๋ฒคํธ ๋ฆฌ์ค๋๋ฅผ ๋ฑ๋กํ๊ฑฐ๋, ์นํ์ด์ง Element์ ๋ฉ์๋๋ฅผ bindํ๋ฉด ๋ฉ๋๋ค.
} catch (e) {
// Videogateweay Controller Library๋ window.postMessage API๋ฅผ ์ด์ฉํ๊ธฐ ๋๋ฌธ์
// ํด๋น ๊ธฐ๋ฅ์ ์ง์ํ์ง ์๋ ์น๋ธ๋ผ์ฐ์ ธ์์๋ ๋์ํ์ง ์์ต๋๋ค.
// ์ด ๋ถ๋ถ์ ์ ์ ํ fail-over ์ฝ๋๋ฅผ ์ถ๊ฐํ์ฌ ์ฃผ์ญ์์.
console.error(e);
}
};
</script>
<body>
<iframe id="child" src="http://v.kr..."></iframe>
</body>
...
VgControllerClient ์์ฑ์ ํ๋ผ๋ฏธํฐ๋ก ์ ๋ฌํ๋ target_window์ ๊ฒฝ์ฐ ํํ์ด์ง์ ์ฒจ๋ถํ Kollus Videogateway iframe์ HTMLElement์ contentWindow ์์ฑ์ ์ ๋ ฅํด์ผ ํฉ๋๋ค
๋ณธ ์คํฌ๋ฆฝํธ๋ window.postMessage API ๋ฅผ ์ด์ฉํ์ฌ Player์ ํต์ ํ๋ฏ๋ก, ํด๋น ๊ธฐ๋ฅ์ ์ง์ํ์ง ์๋ ์น๋ธ๋ผ์ฐ์ ธ์ ์๋ ๋์ํ์ง ์์ต๋๋ค.
์นํ์ด์ง ๋ด์ ํ๋ ์ด์์ iframe์ embedํ ๊ฒฝ์ฐ ์ ์ดํ iframe๋ง๋ค ์๋ก ๋ค๋ฅธ VgControllerClient ๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค.
์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ์ํด (v0.5์ดํ) new VgControllerClient() ๋์ new Kollus.VideogatewayController() ๋ฅผ ์ฌ์ฉํด๋ ์ ์์ ์ผ๋ก ์๋ํฉ๋๋ค.
try-catch๋ฌธ์ Exception code list๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
code | message | description |
|---|---|---|
-1 | * | PostMessage API exception code |
-99 | player type is not defined | Player type์ด ์ ์๋์ง ์์์ต๋๋ค. |
-99 | player type must be one of v2, v3, v4 and flash | Player type์ด ์ ํจํ ๊ฐ์ด ์๋๋๋ค. |
-99 | this browser does not support postMessage | ๋ธ๋ผ์ฐ์ ๊ฐ PostMessage API๋ฅผ ์ง์ํ์ง ์์ต๋ ๋ค |
-99 | listener is not callable | ์ด๋ฒคํธ ๋ฆฌ์ค๋๊ฐ ํจ์ํ์ด ์๋๋๋ค. |
CDN
Vg-Controller Client Library๋ฅผ CDN์ผ๋ก ์ ๊ณตํฉ๋๋ค. ๊ฐ์ฅ ์ต์ ๋ฒ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์๋ ค๋ฉด ์๋ ๋งํฌ๋ฅผ ์ฝ์ ํ์๋ฉด ๋ฉ๋๋ค
https://file.kollus.com/vgcontroller/vg-controller-client.latest.min.js์ด์ ๋ฒ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์๋ ค๋ฉด latest ๋์ ๋ฒ์ ๋ช ์ผ๋ก ๋ณ๊ฒฝํ์ฌ ํธ์ถํ์๋ฉด ๋ฉ๋๋ค.
https://file.kollus.com/vgcontroller/vg-controller-client.1.1.4.min.jsIntegrity ์์ฑ์ ์ฌ์ฉํ๋ฉด VG-Controller Client Library์ ์ ์์ ์ธ ์คํฌ๋ฆฝํธ ๋ณ์กฐ๋ฅผ ๋ฐฉ์งํ ์ ์์ต๋๋ค. ์คํฌ๋ฆฝํธ ํธ์ถ์ ๋ฒ์ ์ ๋ง๋ 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 ์์ฑ๊ฐ์ ์ฌ๊ธฐ๋ฅผ ์ฐธ๊ณ ํ์ธ์.
์ด๋ฒคํธ ๋ฆฌ์ค๋
ํ๋ ์ด์ด๋ก๋ถํฐ ์์ ๋๋ ๊ฐ์ข ์ด๋ฒคํธ ๋ฐ์์ ์ฌ์ฉ์๊ฐ ์ ์ํ callback ํจ์๋ฅผ ์คํํ๋๋ก ์ด๋ฒคํธ ๋ฆฌ์ค๋(Event Listener)๋ฅผ ๋ฑ๋กํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
controller.on('event_name', function(param) {
// ์ด๋ฒคํธ ๋ฆฌ์ค๋
});ํ๋์ ์ด๋ฒคํธ์ ํ๋ ์ด์์ ๋ฆฌ์ค๋๋ฅผ ๋ฑ๋กํ ์๋ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ์ด๋ฒคํธ ๋ฐ์์์ ๋ฑ๋ก๋ ๋ชจ๋ ๋ฆฌ์ค๋๊ฐ ์คํ๋ฉ๋๋ค
controller.on('event_name', function(param) {
// ์ฒซ๋ฒ์งธ ๋ฆฌ์ค๋
});
controller.on('event_name', function(param) {
// ๋๋ฒ์งธ ๋ฆฌ์ค๋
});
// ์ด๋ฒคํธ ๋ฐ์์ ์ฒซ๋ฒ์งธ, ๋๋ฒ์งธ ๋ฆฌ์ค๋๊ฐ ๋ชจ๋ ์คํ
// ๋ค๋ง, ์๋ฐ์คํฌ๋ฆฝํธ ์ด๋ฒคํธ ๋ฃจํ์ callback ํจ์๊ฐ ์คํ๋๋ ๋ฐฉ์์ ์ํด, ์ฒซ๋ฒ์งธ ๋ฆฌ์ค๋๊ฐ ๋ฐ๋์ ๋จผ์
// ์คํ๋๋ค๊ณ ๋ณด์ฅํ ์ ์์ผ๋ฉฐ, ๋๋ฒ์งธ ๋ฆฌ์ค๋๊ฐ ์คํ๋๋ ๊ฒ์ด ์ฒซ๋ฒ์งธ ๋ฆฌ์ค๋๊ฐ ์คํ๋ ๋ค์ธ ๊ฒ๋ ์๋๋๋ค.์ด๋ฒคํธ ๋ฆฌ์ค๋๋ฅผ ๋ฑ๋กํ๋ ํจ์์ธ on ์ ๋ฉ์๋ ์ฒด์ด๋(Method chaining)์ ์ง์ํฉ๋๋ค.
controller.on('event_name_1', function(param) {
// ์ฒซ๋ฒ์งธ ๋ฆฌ์ค๋
}).on('event_name_2', function(param) {
// ๋๋ฒ์งธ ๋ฆฌ์ค๋
});ํ๋ ์ด์์ ๋ฆฌ์ค๋๋ฅผ ๋ฑ๋กํ ๊ฒฝ์ฐ ์ด๋ฒคํธ ๋ฐ์์์ ๋ฑ๋ก๋ ๋ชจ๋ ๋ฆฌ์ค๋๊ฐ ์คํ๋ฉ๋๋ค.ย ๋ค๋ง, ์๋ฐ์คํฌ๋ฆฝํธ ์ด๋ฒคํธ ๋ฃจํ์ callback ํจ์๊ฐ ์คํ๋๋ ๋ฐฉ์์ ์ํด, ์คํ ์์๊ฐ ๋ฐ๋ ์ ์์ต๋๋ค.
์ด๋ฒคํธ ๋ชฉ๋กย | |||
|---|---|---|---|
loaded | ํ๋ ์ด์ด ๋ก๋ฉ์ด ์๋ฃ๋๋ฉด ์ด๋ฒคํธ๊ฐ ๋ฐ์ํฉ๋๋ค. | v3, v4 | |
ํ๋ ์ด์ด ๋ก๋ฉ์ด ๋๋๊ณ ์ฌ์ ์ ๋ณด๋ฅผ ์๋ฒ๋ก๋ถํฐ ํ๋ํ์์ผ๋ฉฐ, ์ค์ ์ฌ์์ค๋น๊ฐ ์๋ฃ๋ ์์ ์ ๋๋ค. | v3, v4 | ||
play | ์ฌ์ ์์์์ ๋ฐ์ํฉ๋๋ค. ์ด๊ธฐ ์ฌ์ ์์์ ์ ์ธํ๊ณ ์ผ์ ๋ฉ์ถค ์ํ์์ ๋ค์ ์ฌ์์ ์์ํ ๋๋ ๋ฐ์ํฉ๋๋ค. | v3, v4 | |
progress | ์ฌ์์ ๋งค์ด๋ง๋ค ๋ฐ์ํฉ๋๋ค. ๋จ,ย HTML5 Video Player์ ๊ตฌ์กฐ์ progress ์ด๋ฒคํธ๊ฐ ์ ํํ๊ฒ 1์ด๋ง๋ค ๋ฐ์ํ์ง ์์์ ์์ต๋๋ค. (0.1์์ ์ต๋ 0.5์ด ๊ฐ๋ ์ฐจ์ด๊ฐ ๋ ์๋ ์์ต๋๋ค.)ย progress ์ด๋ฒคํธ๋ก ์์ ํ์ค ๊ฒฝ์ฐ ์ด ๋ถ๋ถ์ ์ ๋ ํ์ฌ ์ฃผ์ญ์์. Parameters:
| v3, v4 | controller.on('progress', function(percent, position, duration) {
// ์ธ์์ ์์๋ ์์๊ณผ ๊ฐ์ต๋๋ค.
}); |
pause | ์ผ์ ์ ์ง์์ ๋ฐ์ํฉ๋๋ค. | v3, v4 | |
done | ์ฌ์ ์๋ฃ์์ ๋ฐ์ํฉ๋๋ค. ์ฌ์ ์๋ฃ๋ duration์ ๋๊น์ง ๋ชจ๋ ์ฌ์ํ ๊ฒฝ์ฐ๋ฅผ ์๋ฏธํฉ๋๋ค. | v3, v4 | |
mutedย | ์์๊ฑฐ ์ํ๊ฐ ๋ณ๊ฒฝ์ ํธ์ถ๋ฉ๋๋ค. (์์๊ฑฐ์, ์์๊ฑฐ ํด์ ์ ๋ชจ๋ ๋ฐ์) ๋ค๋ง, V2 Player์ ๊ฒฝ์ฐ ํ์ฌ muted ์ด๋ฒคํธ๋ฅผ ์ ๊ณตํ์ง ์์ต๋๋ค. ๋์ ์์๊ฑฐ๊ฐ ๋๋ ๊ฒฝ์ฐ volumechange ์ด๋ฒคํธ๊ฐ ๋ฐ์๋๊ณ ๋ณ๊ฒฝ๋ ์๋์ 0์ผ๋ก ์ ๊ณตํฉ๋๋ค. Parameters:
| v3, v4 | controller.on('muted', function(is_muted) {
// is_muted๊ฐ true๋ฉด ์์๊ฑฐ, false๋ฉด ํด์ ์
๋๋ค.
}); |
seeking | ํ๋ ์ด ์์ ๋ณ๊ฒฝ์ ํธ์ถ๋ฉ๋๋ค. | ย v4 | |
seeked | ย ํ๋ ์ด ์์ ๋ณ๊ฒฝ์ด ๋๋ฌ์ ๋ ํธ์ถ๋ฉ๋๋ค. | ย v4 | |
seek_start | ํ๋ ์ด ์์ ๋ณ๊ฒฝ ์์์ ํธ์ถ๋ฉ๋๋ค | V4 V5 | ย |
screenchange | ์ ์ฒด, ์ผ๋ฐํ๋ฉด ๋ณ๊ฒฝ์ ๋ฐ์ํฉ๋๋ค. ย screen ํ๋ผ๋ฏธํฐ๋ windowed, fullscreen 2๊ฐ์ง ๋ฌธ์์ด ๊ฐ์ด๋ฐ ํ๋๋ฅผ ์ ๊ณตํฉ๋๋ค.ย Parameters:
| v3, v4 | controller.on('screenchange', function(screen) {
// ...
}); |
subtitle_load_done | ์๋ง์ ๋ก๋๊ฐ ์๋ฃ๋๋ฉด ๋ฐ์ํฉ๋๋ค | ย | ย |
volumechange | ์๋ ๋ณ๊ฒฝ์ ๋ฐ์ํฉ๋๋ค. Parameters:
| v3, v4 | controller.on('volumechange', function(volume) {
// volume์ ๋ฒ์๋ 0 <= volume <= 100 ์
๋๋ค.
}); |
speedchangeย ย | ๋ฐฐ์ ๋ณ๊ฒฝ์ ๋ฐ์ํฉ๋๋ค. ๋ฐฐ์ ์ต๋๊ฐ์ Player์ ์ค์ ์ ๋ฐ๋ผ ๋ฐ๋ ์ ์์ต๋๋ค. Parameters:
| v3, v4 | controller.on('speedchange', function(speed) {
// speed์ ๋ฒ์๋ 0.5 <= speed <= 4 ์
๋๋ค.
}); |
playbackrateschange | ๋ฐฐ์ ๋จ์๋ฅผ ์ค์ ํ๋ ๋ฐฐ์๊ฐ ๊ทธ๋ฃน ๋ณ๊ฒฝ์ ๋ฐ์ํฉ๋๋ค. Parameters:
| v3, v4 | controller.on('playbackrateschange', function(playback_rates) {
// playback_rates๋ ๋ฐฐ์ด์ ๋ฌธ์์ด์ด๋ฉฐ,
//๋จ์ผ๋ฐฐ์ด ๋๋ ์ด์ค๋ฐฐ์ด๋ก ๋ฐํ๋ฉ๋๋ค.
}); |
videosettingchangeย | ๋น๋์ค ์์ฑ ๋ณ๊ฒฝ์ ๋ฐ์ํฉ๋๋ค. ๋น๋์ค ์์ฑ ๋ณ๊ฒฝ ๊ธฐ๋ฅ์ V2 Player์๋ง ์กด์ฌํ๋ ๊ธฐ๋ฅ์
๋๋ค. ๋ค๋ฅธ Player์์๋ ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํค์ง ์์ต๋๋ค. Parameters:
| v3 | controller.on('videosettingchange', function(videosetting) {
// videosetting ํ๋ผ๋ฏธํฐ๋ ๋ค์์ ํํ๋ก
// ํ์๋๋ Object ํ์
์
๋๋ค.
//
// {
// "brightness": 0,
// "contrast": 0,
// "saturation": 0
// }
}); |
jumpstepchange | ff, rw ๋ฉ์๋๋ฅผ ํตํด ์ด๋ํ ์๊ฐ๊ฐ ๋ณ๊ฒฝ์ ๋ฐ์ํฉ๋๋ค. Parameters:
| v3, v4 | controller.on('jumpstepchange', function(jumpstep) {
// jumpstep์ ์ด๋จ์์
๋๋ค.
}); |
subtitlevisibilitychangeย | ์๋ง์ ํ๋ฉด์ถ๋ ฅ ์ํ๊ฐ ๋ณ๊ฒฝ๋๋ฉด ๋ฐ์ํฉ๋๋ค. Parameters:
| v3, v4 | |
hlsfragchangeย | hls์ frag(2)๊ฐ ๋ณ๊ฒฝ๋๋ฉด ๋ฐ์ํฉ๋๋ค. | v4 | |
html5_video_supportedย | V3, V4 Player์์๋ง ๋ฐ์ํฉ๋๋ค. Player๊ฐ ๋ด๋ถ์์ HTML5 Video ์ฌ์๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋ค๊ณ ํ๋จํ์ฌ HTML5 Video Player๋ฅผ ๋ก๋ํ ๊ฒฝ์ฐ์ true ๋ฅผ, ์ ์ฉ ํ๋ ์ด์ด๋ฅผ ์ฌ์ํด์ผ ํ๋ค๊ณ ํ๋จํ ๊ฒฝ์ฐ์ false๋ฅผ ๋ฆฌํดํฉ๋๋ค. (http://caniuse.com/#feat=video ์ฐธ์กฐ) Parameters:
| v3, v4 | |
error | Player๊ฐ ์ฌ์์ค๋ฅ๋ฅผ ๋ฐํํ๋ ๊ฒฝ์ฐ ๋ฐ์ํฉ๋๋ค. Parameters:
| v3, v4 | controller.on('error', function(error_code) {
// ...
}); |
device_orientation_changed | ๋ชจ๋ฐ์ผ ๋๋ฐ์ด์ค์ธ ๊ฒฝ์ฐ ๊ฐ๋ก/์ธ๋ก ํ์ ์ ๋ฐ์ํฉ๋๋ค. Parameters:
| ย v4 | |
hls_manifest_loaded | v4 player hls manifest ๊ฐ ๋ก๋๋ ์ ๋ฐ์ํฉ๋๋ค. ย ย Parameters:
| v4 | ย |
dash_manifest_loaded | v4 player dash manifest ๊ฐ ๋ก๋๋ ์ ๋ฐ์ํฉ๋๋ค. ย ย Parameters:
| v4 | ย |
bitrate_data_loaded | Hls/Dash manifest๊ฐ ๋ก๋ ๋ ํ Bitrate ๋ฐ์ดํฐ๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ ํ ๋ฐฐ์ด์ ๋ด์ ๋ฐํํฉ๋๋ค. Parameters:
| v4 | controller.on('bitrate_data_loaded', function(bitrate_data) {
// bitrate_data๋ Bitrate Data Object๋ฅผ ํฌํจํ๋ ๋ฐฐ์ด๊ฐ์ฒด ์
๋๋ค.
//
// [
// {
// width: <int>,
// height: <int>,
// bitrate: <int>
// }
// ]
}); |
bookmark_change | v3 ๋ถ๋งํฌ ์ถ๊ฐ, ์ ๋ฐ์ดํธ, ์ญ์ ์ ๋ฐ์ํฉ๋๋ค. Parameters:
| V3 | controller.on('bookmark_change', function(data) {
// ์ถ๊ฐ add
// ํธ์ง update
// ์ญ์ delete
}); |
waiting | ์ฌ์์ค waiting ์ด๋ฒคํธ๊ฐ ๋ฐ์๋ ๋ 1์ด๋ง๋ค ํธ์ถ๋ฉ๋๋ค Parameters:
| V4 | ย |
user_active_changed | ํ๋ ์ด์ด ์ปจํธ๋กค๋ฐ๊ฐ ํ์ฑ/๋นํ์ฑํ ๋ ๋ ์ด๋ฒคํธ๋ฅผ ๋ฐ์ํฉ๋๋ค. Parameters:
| V4 | ย |
next_episode_auto_change | ๋ค์ ํ ์๋์ฌ์ ์ํ๊ฐ ๋ณ๊ฒฝ๋๋ฉด ๋ฐ์ํฉ๋๋ค. next_episode_change ์ด๋ฒคํธ๋ deprecated ๋์์ต๋๋ค. v3/v4์์๋ ๊ณ์ ์ฌ์ฉ ๊ฐ๋ฅํ๋ ๊ถ์ฅํ์ง ์์ต๋๋ค. Parameters:
| V3, V4, V5 | ย |
next_episode_requested | ๋ค์ ํ์ฐจ Callback API๊ฐ ํธ์ถ๋๋ฉด ๋ฐ์ํฉ๋๋ค. Parameters:
| V3, V4, V5 | ย |
picture_in_picture_entered | PIP ๋ชจ๋ ์ง์ ์ ๋ฐ์ํฉ๋๋ค. *๋ธ๋ผ์ฐ์ ์์ ์ ๊ณตํ๋ ์์ฒด PIP ๊ธฐ๋ฅ์ ์ฌ์ฉํ ๊ฒฝ์ฐ์๋ ๋ฐ์ํ์ง ์์ต๋๋ค. (ex: FireFox ๋ธ๋ผ์ฐ์ ์ PIP ๋ฒํผ ํด๋ฆญ) | V3 V4 V5 | ย |
picture_in_picture_leaved | PIP ๋ชจ๋ ์ข ๋ฃ์ ๋ฐ์ํฉ๋๋ค. *๋ธ๋ผ์ฐ์ ์์ ์ ๊ณตํ๋ ์์ฒด PIP ๊ธฐ๋ฅ์ ์ฌ์ฉํ ๊ฒฝ์ฐ์๋ ๋ฐ์ํ์ง ์์ต๋๋ค. (ex: FireFox ๋ธ๋ผ์ฐ์ ์ PIP ๋ฒํผ ํด๋ฆญ | V3 V4 V5 | ย |
๋ฉ์๋ ์ฌ์ฉํ๊ธฐ
Videogateway Controller Library๊ฐ ์ง์ํ๋ ๋ฉ์๋๋ฅผ ํธ์ถํ๋ ๋ฐฉ๋ฒ์ ๊ฐ๋จํฉ๋๋ค.
controller.play();์ด๊ฒ ์ ๋ถ์ ๋๋ค. ๊ฒฝ์ฐ์ ๋ฐ๋ผ์ ํ๋ผ๋ฏธํฐ๋ฅผ ์๊ตฌํ๋ ๋ฉ์๋๋ ์์ต๋๋ค.
controller.set_volume(90);๋ฉ์๋ ๋ชฉ๋ก
์ด๋ฒคํธ ๋ฆฌ์ค๋ ๋ฉ์๋ | |||
|---|---|---|---|
on (event_name, callback_function) | ์ด๋ฒคํธ ๋ฆฌ์ค๋๋ฅผ ๋ฑ๋กํฉ๋๋ค. Parameters:
Return:
| v3, v4 | controller.on('event_name', function(param) {
// event_name์ ํด๋นํ๋ ์ด๋ฒคํธ ๋ฐ์์, ๋๋ฒ์งธ ์ธ์์ธ callback function ์คํ
}); |
off(event_name) | ๋ฑ๋ก๋ ์ด๋ฒคํธ ๋ฆฌ์ค๋๋ฅผ ์ ๊ฑฐํฉ๋๋ค. Parameters:
Return:
| v3, v4 | controller.off('event_name'); |
์ฌ์ ๋ฉ์๋ย | |||
|---|---|---|---|
get_progress()ย | |||
Copyright ยฉ CATENOID, lnc. All Rights Reserved.
E-mail. support@catenoid.net | Tel. 1544-4367