playable
Version:
Video player based on HTML5Video
95 lines • 4.75 kB
JavaScript
;
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