angular-dashjs-player
Version:
An Angular 6 module to make Dash.js integration in Angular really easy
79 lines (78 loc) • 4.79 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import { Component, ElementRef, Input, ViewChild } from '@angular/core';
import { MediaPlayer } from 'dashjs';
export class DashjsPlayerComponent {
constructor() {
this.autoload = true;
}
/**
* @param {?} value
* @return {?}
*/
set src(value) {
this._src = value;
if (this.player && this.player.isPaused()) {
this.play();
}
}
/**
* @return {?}
*/
ngOnInit() {
this.player = MediaPlayer().create();
this.player.initialize(this.videoPlayer.nativeElement, this._src, this.autoload);
}
/**
* @return {?}
*/
ngOnDestroy() {
this.player.reset();
}
/**
* @return {?}
*/
getPlayer() {
return this.player;
}
/**
* @return {?}
*/
play() {
this.player.play();
}
/**
* @return {?}
*/
pause() {
this.player.pause();
}
}
DashjsPlayerComponent.decorators = [
{ type: Component, args: [{
selector: 'dashjs-player',
template: `<video #videoPlayer controls></video>
`,
styles: [`video{width:100%;height:100%}`]
},] },
];
/** @nocollapse */
DashjsPlayerComponent.ctorParameters = () => [];
DashjsPlayerComponent.propDecorators = {
videoPlayer: [{ type: ViewChild, args: ['videoPlayer',] }],
autoload: [{ type: Input }],
src: [{ type: Input }]
};
function DashjsPlayerComponent_tsickle_Closure_declarations() {
/** @type {?} */
DashjsPlayerComponent.prototype.player;
/** @type {?} */
DashjsPlayerComponent.prototype._src;
/** @type {?} */
DashjsPlayerComponent.prototype.videoPlayer;
/** @type {?} */
DashjsPlayerComponent.prototype.autoload;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGpzLXBsYXllci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLWRhc2hqcy1wbGF5ZXIvIiwic291cmNlcyI6WyJsaWIvZGFzaGpzLXBsYXllci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBQyxXQUFXLEVBQW1CLE1BQU0sUUFBUSxDQUFDO0FBUXJELE1BQU07SUFhSjt3QkFSNkIsSUFBSTtLQVFoQjs7Ozs7SUFQakIsSUFBYSxHQUFHLENBQUMsS0FBYTtRQUM1QixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNsQixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNiO0tBQ0Y7Ozs7SUFJRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE1BQU0sR0FBRyxXQUFXLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUNsRjs7OztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO0tBQ3JCOzs7O0lBRU0sU0FBUztRQUNkLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDOzs7OztJQUdkLElBQUk7UUFDVCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDOzs7OztJQUdkLEtBQUs7UUFDVixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDOzs7O1lBdkN2QixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGVBQWU7Z0JBQ3pCLFFBQVEsRUFBRTtDQUNYO2dCQUNDLE1BQU0sRUFBRSxDQUFDLCtCQUErQixDQUFDO2FBQzFDOzs7OzswQkFLRSxTQUFTLFNBQUMsYUFBYTt1QkFDdkIsS0FBSztrQkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TWVkaWFQbGF5ZXIsIE1lZGlhUGxheWVyQ2xhc3N9IGZyb20gJ2Rhc2hqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Rhc2hqcy1wbGF5ZXInLFxuICB0ZW1wbGF0ZTogYDx2aWRlbyAjdmlkZW9QbGF5ZXIgY29udHJvbHM+PC92aWRlbz5cbmAsXG4gIHN0eWxlczogW2B2aWRlb3t3aWR0aDoxMDAlO2hlaWdodDoxMDAlfWBdXG59KVxuZXhwb3J0IGNsYXNzIERhc2hqc1BsYXllckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIHBsYXllcjogTWVkaWFQbGF5ZXJDbGFzcztcbiAgcHJpdmF0ZSBfc3JjOiBzdHJpbmc7XG5cbiAgQFZpZXdDaGlsZCgndmlkZW9QbGF5ZXInKSB2aWRlb1BsYXllcjogRWxlbWVudFJlZjtcbiAgQElucHV0KCkgYXV0b2xvYWQ6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBzZXQgc3JjKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9zcmMgPSB2YWx1ZTtcbiAgICBpZiAodGhpcy5wbGF5ZXIgJiYgdGhpcy5wbGF5ZXIuaXNQYXVzZWQoKSkge1xuICAgICAgdGhpcy5wbGF5KCk7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnBsYXllciA9IE1lZGlhUGxheWVyKCkuY3JlYXRlKCk7XG4gICAgdGhpcy5wbGF5ZXIuaW5pdGlhbGl6ZSh0aGlzLnZpZGVvUGxheWVyLm5hdGl2ZUVsZW1lbnQsIHRoaXMuX3NyYywgdGhpcy5hdXRvbG9hZCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnBsYXllci5yZXNldCgpO1xuICB9XG5cbiAgcHVibGljIGdldFBsYXllcigpOiBNZWRpYVBsYXllckNsYXNzIHtcbiAgICByZXR1cm4gdGhpcy5wbGF5ZXI7XG4gIH1cblxuICBwdWJsaWMgcGxheSgpOiB2b2lkIHtcbiAgICB0aGlzLnBsYXllci5wbGF5KCk7XG4gIH1cblxuICBwdWJsaWMgcGF1c2UoKTogdm9pZCB7XG4gICAgdGhpcy5wbGF5ZXIucGF1c2UoKTtcbiAgfVxuXG59XG4iXX0=