UNPKG

playable

Version:

Video player based on HTML5Video

95 lines 4.75 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AMOUNT_TO_CHANGE_VOLUME = exports.AMOUNT_TO_SKIP_SECONDS = void 0; var tslib_1 = require("tslib"); var constants_1 = require("../../constants"); var device_detection_1 = require("../../utils/device-detection"); var keyboard_interceptor_1 = (0, tslib_1.__importStar)(require("../../utils/keyboard-interceptor")); exports.AMOUNT_TO_SKIP_SECONDS = 5; exports.AMOUNT_TO_CHANGE_VOLUME = 10; var KeyboardControl = /** @class */ (function () { function KeyboardControl(_a) { var config = _a.config, eventEmitter = _a.eventEmitter, rootContainer = _a.rootContainer, engine = _a.engine; this._eventEmitter = eventEmitter; this._engine = engine; if ((0, device_detection_1.isIPhone)() || (0, device_detection_1.isIPod)() || (0, device_detection_1.isIPad)() || (0, device_detection_1.isAndroid)()) { this._isEnabled = false; } else { this._isEnabled = config.disableControlWithKeyboard !== false; } this._initInterceptor(rootContainer.getElement()); } KeyboardControl.prototype._initInterceptor = function (rootElement) { if (this._isEnabled) { this._keyboardInterceptor = new keyboard_interceptor_1.default(rootElement); this._attachDefaultControls(); } }; KeyboardControl.prototype._attachDefaultControls = function () { var _a; var _this = this; this._keyboardInterceptor.addCallbacks((_a = {}, _a[keyboard_interceptor_1.KEYCODES.TAB] = function () { _this._eventEmitter.emitAsync(constants_1.UIEvent.KEYBOARD_KEYDOWN_INTERCEPTED); }, _a[keyboard_interceptor_1.KEYCODES.SPACE_BAR] = function (e) { e.preventDefault(); _this._eventEmitter.emitAsync(constants_1.UIEvent.KEYBOARD_KEYDOWN_INTERCEPTED); _this._eventEmitter.emitAsync(constants_1.UIEvent.TOGGLE_PLAYBACK_WITH_KEYBOARD); _this._engine.togglePlayback(); }, _a[keyboard_interceptor_1.KEYCODES.LEFT_ARROW] = function (e) { if (_this._engine.isSeekAvailable) { e.preventDefault(); _this._eventEmitter.emitAsync(constants_1.UIEvent.KEYBOARD_KEYDOWN_INTERCEPTED); _this._eventEmitter.emitAsync(constants_1.UIEvent.GO_BACKWARD_WITH_KEYBOARD); _this._engine.seekBackward(exports.AMOUNT_TO_SKIP_SECONDS); } }, _a[keyboard_interceptor_1.KEYCODES.RIGHT_ARROW] = function (e) { if (_this._engine.isSeekAvailable) { e.preventDefault(); _this._eventEmitter.emitAsync(constants_1.UIEvent.KEYBOARD_KEYDOWN_INTERCEPTED); _this._eventEmitter.emitAsync(constants_1.UIEvent.GO_FORWARD_WITH_KEYBOARD); _this._engine.seekForward(exports.AMOUNT_TO_SKIP_SECONDS); } }, _a[keyboard_interceptor_1.KEYCODES.UP_ARROW] = function (e) { e.preventDefault(); _this._eventEmitter.emitAsync(constants_1.UIEvent.KEYBOARD_KEYDOWN_INTERCEPTED); _this._eventEmitter.emitAsync(constants_1.UIEvent.INCREASE_VOLUME_WITH_KEYBOARD); _this._engine.setMute(false); _this._engine.increaseVolume(exports.AMOUNT_TO_CHANGE_VOLUME); }, _a[keyboard_interceptor_1.KEYCODES.DOWN_ARROW] = function (e) { e.preventDefault(); _this._eventEmitter.emitAsync(constants_1.UIEvent.KEYBOARD_KEYDOWN_INTERCEPTED); _this._eventEmitter.emitAsync(constants_1.UIEvent.DECREASE_VOLUME_WITH_KEYBOARD); _this._engine.setMute(false); _this._engine.decreaseVolume(exports.AMOUNT_TO_CHANGE_VOLUME); }, _a)); }; KeyboardControl.prototype._destroyInterceptor = function () { if (this._keyboardInterceptor) { this._keyboardInterceptor.destroy(); } }; KeyboardControl.prototype.addKeyControl = function (key, callback) { var _a; if (this._isEnabled) { this._keyboardInterceptor.addCallbacks((_a = {}, _a[key] = callback, _a)); } }; KeyboardControl.prototype.destroy = function () { this._destroyInterceptor(); }; KeyboardControl.moduleName = 'keyboardControl'; KeyboardControl.dependencies = ['engine', 'eventEmitter', 'rootContainer', 'config']; return KeyboardControl; }()); exports.default = KeyboardControl; //# sourceMappingURL=keyboard-control.js.map