angular-dashjs-player
Version:
An Angular 6 module to make Dash.js integration in Angular really easy
112 lines (105 loc) • 6.4 kB
JavaScript
import { Injectable, Component, Input, ViewChild, NgModule, defineInjectable } from '@angular/core';
import { MediaPlayer } from 'dashjs';
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
class DashjsPlayerService {
constructor() { }
}
DashjsPlayerService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root'
},] },
];
/** @nocollapse */
DashjsPlayerService.ctorParameters = () => [];
/** @nocollapse */ DashjsPlayerService.ngInjectableDef = defineInjectable({ factory: function DashjsPlayerService_Factory() { return new DashjsPlayerService(); }, token: DashjsPlayerService, providedIn: "root" });
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
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 }]
};
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
class DashjsPlayerModule {
}
DashjsPlayerModule.decorators = [
{ type: NgModule, args: [{
imports: [],
declarations: [DashjsPlayerComponent],
exports: [DashjsPlayerComponent]
},] },
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
export { DashjsPlayerService, DashjsPlayerComponent, DashjsPlayerModule };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1kYXNoanMtcGxheWVyLmpzLm1hcCIsInNvdXJjZXMiOlsibmc6Ly9hbmd1bGFyLWRhc2hqcy1wbGF5ZXIvbGliL2Rhc2hqcy1wbGF5ZXIuc2VydmljZS50cyIsIm5nOi8vYW5ndWxhci1kYXNoanMtcGxheWVyL2xpYi9kYXNoanMtcGxheWVyLmNvbXBvbmVudC50cyIsIm5nOi8vYW5ndWxhci1kYXNoanMtcGxheWVyL2xpYi9kYXNoanMtcGxheWVyLm1vZHVsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIERhc2hqc1BsYXllclNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG59XG4iLCJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNZWRpYVBsYXllciwgTWVkaWFQbGF5ZXJDbGFzc30gZnJvbSAnZGFzaGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGFzaGpzLXBsYXllcicsXG4gIHRlbXBsYXRlOiBgPHZpZGVvICN2aWRlb1BsYXllciBjb250cm9scz48L3ZpZGVvPlxuYCxcbiAgc3R5bGVzOiBbYHZpZGVve3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9YF1cbn0pXG5leHBvcnQgY2xhc3MgRGFzaGpzUGxheWVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwdWJsaWMgcGxheWVyOiBNZWRpYVBsYXllckNsYXNzO1xuICBwcml2YXRlIF9zcmM6IHN0cmluZztcblxuICBAVmlld0NoaWxkKCd2aWRlb1BsYXllcicpIHZpZGVvUGxheWVyOiBFbGVtZW50UmVmO1xuICBASW5wdXQoKSBhdXRvbG9hZDogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHNldCBzcmModmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3NyYyA9IHZhbHVlO1xuICAgIGlmICh0aGlzLnBsYXllciAmJiB0aGlzLnBsYXllci5pc1BhdXNlZCgpKSB7XG4gICAgICB0aGlzLnBsYXkoKTtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucGxheWVyID0gTWVkaWFQbGF5ZXIoKS5jcmVhdGUoKTtcbiAgICB0aGlzLnBsYXllci5pbml0aWFsaXplKHRoaXMudmlkZW9QbGF5ZXIubmF0aXZlRWxlbWVudCwgdGhpcy5fc3JjLCB0aGlzLmF1dG9sb2FkKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMucGxheWVyLnJlc2V0KCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0UGxheWVyKCk6IE1lZGlhUGxheWVyQ2xhc3Mge1xuICAgIHJldHVybiB0aGlzLnBsYXllcjtcbiAgfVxuXG4gIHB1YmxpYyBwbGF5KCk6IHZvaWQge1xuICAgIHRoaXMucGxheWVyLnBsYXkoKTtcbiAgfVxuXG4gIHB1YmxpYyBwYXVzZSgpOiB2b2lkIHtcbiAgICB0aGlzLnBsYXllci5wYXVzZSgpO1xuICB9XG5cbn1cbiIsImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXNoanNQbGF5ZXJDb21wb25lbnQgfSBmcm9tICcuL2Rhc2hqcy1wbGF5ZXIuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtEYXNoanNQbGF5ZXJDb21wb25lbnRdLFxuICBleHBvcnRzOiBbRGFzaGpzUGxheWVyQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBEYXNoanNQbGF5ZXJNb2R1bGUgeyB9XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBO0lBT0UsaUJBQWlCOzs7WUFMbEIsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7Ozs7Ozs7O0FDSkQ7SUFzQkU7d0JBUjZCLElBQUk7S0FRaEI7Ozs7O0lBUGpCLElBQWEsR0FBRyxDQUFDLEtBQWE7UUFDNUIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDbEIsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDekMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2I7S0FDRjs7OztJQUlELFFBQVE7UUFDTixJQUFJLENBQUMsTUFBTSxHQUFHLFdBQVcsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0tBQ2xGOzs7O0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7S0FDckI7Ozs7SUFFTSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDOzs7OztJQUdkLElBQUk7UUFDVCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDOzs7OztJQUdkLEtBQUs7UUFDVixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDOzs7O1lBdkN2QixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGVBQWU7Z0JBQ3pCLFFBQVEsRUFBRTtDQUNYO2dCQUNDLE1BQU0sRUFBRSxDQUFDLCtCQUErQixDQUFDO2FBQzFDOzs7OzswQkFLRSxTQUFTLFNBQUMsYUFBYTt1QkFDdkIsS0FBSztrQkFDTCxLQUFLOzs7Ozs7O0FDZlI7OztZQUdDLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUUsRUFDUjtnQkFDRCxZQUFZLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztnQkFDckMsT0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUM7YUFDakM7Ozs7Ozs7Ozs7Ozs7OzsifQ==