{"version":3,"sources":["webpack:///./src/components/player/player.vue?97da","webpack:///./src/components/player/player.ts","webpack:///./src/components/player/player.ts?cb34","webpack:///./src/components/player/player.vue"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","containerId","staticRenderFns","PlayerComponent","_Vue","_inherits","_super","_createSuper","_this","_classCallCheck","streamId","url","player","show","removeOnError","events","playing","$","Deferred","ended","_createClass","key","get","ServerDataModule","serverData","value","oldValue","Debug","log","$el","video","id","width","height","load","$emit","stopVideo","resizeVideo","_load","_asyncToGenerator","regeneratorRuntime","mark","_callee","response","wrap","_context","prev","next","error","abrupt","skipLoad","resizePlayer","getStreamUrl","sent","stop","apply","arguments","_getStreamUrl","_callee2","message","_context2","PlayerApi","streamUrl","token","AmsPlayer","callbacks","onError","onEnded","onPlaying","mute","playVideo","autoPlay","t0","finish","studio","resolve","code","remove","Vue","__decorate","Prop","default","Watch","Component","component"],"mappings":"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","file":"js/chunk-2d0d732f.426ccae1.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('video',{staticClass:\"sur-ams-player-video\",attrs:{\"id\":_vm.containerId}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop, Watch } from 'vue-property-decorator';\r\nimport $ from 'jquery';\r\nimport AmsPlayer from './player_ams';\r\nimport PlayerApi from '@/support/playerApi';\r\nimport { ServerDataModule } from '@/store/serverData';\r\nimport { IVideoPlayer, IVideo } from '@/interfaces';\r\n\r\n@Component\r\nexport default class PlayerComponent extends Vue {\r\n get serverData() {\r\n return ServerDataModule.serverData;\r\n }\r\n\r\n streamId: string = null;\r\n url: string = null;\r\n player: IVideoPlayer = null;\r\n show: boolean = false;\r\n containerId: string = null;\r\n removeOnError = false;\r\n\r\n events = {\r\n playing: $.Deferred(),\r\n ended: $.Deferred(),\r\n };\r\n\r\n @Prop({ default: null })\r\n video: IVideo;\r\n\r\n @Prop({ default: 640 })\r\n width: number;\r\n\r\n @Prop({ default: 480 })\r\n height: number;\r\n\r\n @Prop({ default: false })\r\n skipLoad: boolean;\r\n\r\n @Prop({ default: true })\r\n autoPlay: boolean;\r\n\r\n @Prop({ default: false })\r\n mute: boolean;\r\n\r\n @Prop({ default: true })\r\n showTitle: boolean;\r\n\r\n @Watch('video')\r\n onVideoChanged(value: IVideo, oldValue: IVideo) {\r\n Debug.log('player video changed:', value);\r\n }\r\n\r\n mounted() {\r\n let $el = $(this.$el);\r\n\r\n Debug.log('player', this.video.id, this.video, this.width, this.height, $el.width(), $el.height(), this.$el);\r\n if (this.video) {\r\n this.containerId = 'player-container-' + this.video.id;\r\n\r\n this.load();\r\n }\r\n\r\n this.$emit('mounted', this.video);\r\n }\r\n\r\n beforeDestroy() {\r\n if (this.player)\r\n this.player.stopVideo();\r\n }\r\n\r\n resizePlayer(width: number, height: number) {\r\n this.width = width;\r\n this.height = height;\r\n\r\n let $el = $(this.$el);\r\n Debug.log(\"player\", \"resizePlayer\", this.video.id, this.width + ' x ' + this.height, this.player, this.$el);\r\n\r\n $el.width(this.width);\r\n $el.height(this.height);\r\n\r\n if (this.player) {\r\n this.player.resizeVideo(this.width, this.height);\r\n }\r\n }\r\n\r\n async load() {\r\n if (!this.video) {\r\n Debug.error('player load missing video');\r\n return false;\r\n }\r\n\r\n if (this.skipLoad) {\r\n this.resizePlayer(this.width, this.height);\r\n Debug.log(\"player\", \"skipLoad\", this.video.id, this.width, ' x ', this.height, this.$el);\r\n return false;\r\n }\r\n\r\n let response = await this.getStreamUrl();\r\n if (response) {\r\n this.show = true;\r\n }\r\n }\r\n\r\n async getStreamUrl() {\r\n try {\r\n let response = await PlayerApi.getStreamUrl(this.video);\r\n\r\n Debug.log(\"player stream url\", response, this.video);\r\n this.video.streamUrl = response.streamUrl;\r\n this.video.token = response.token;\r\n\r\n this.player = new AmsPlayer(this.video.id, this.width, this.height);\r\n this.player.callbacks.onError = this.onError;\r\n this.player.callbacks.onEnded = this.onEnded;\r\n this.player.callbacks.onPlaying = this.onPlaying;\r\n this.player.mute = this.mute;\r\n this.player.playVideo(this.video, this.autoPlay);\r\n this.video.player = this.player;\r\n\r\n return true;\r\n } catch (err) {\r\n let message = err.message || 'ERROR';\r\n Debug.error('Failed aquire video: ' + message);\r\n return null;\r\n } finally {\r\n\r\n }\r\n }\r\n\r\n onPlaying(video: IVideo) {\r\n Debug.log(\"onPlaying\", this.video.studio, this.video.id, this.video.id);\r\n this.events.playing.resolve(true);\r\n\r\n this.$emit('playing', this.video);\r\n }\r\n\r\n onEnded(video: IVideo) {\r\n Debug.log(\"onEnded\", this.video.studio, this.video.id, this.video.id);\r\n this.events.playing.resolve(false);\r\n this.events.ended.resolve(true);\r\n\r\n this.show = false;\r\n if (this.player)\r\n this.player.stopVideo();\r\n\r\n this.$emit('ended', this.video);\r\n }\r\n\r\n onError(video: IVideo, error: string, code: number, message: string) {\r\n Debug.error(\"onError\", error, code, message, video.studio, video.id, video.id);\r\n this.show = false;\r\n\r\n if (this.removeOnError) {\r\n let $el = $(this.$el);\r\n $el.width(0);\r\n $el.height(0);\r\n $el.remove();\r\n }\r\n\r\n if (this.player)\r\n this.player.stopVideo();\r\n\r\n this.$emit('error', this.video);\r\n }\r\n\r\n stopPlayer() {\r\n if (this.player)\r\n this.player.stopVideo();\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/ts-loader/index.js??ref--13-3!./player.ts?vue&type=script&lang=js&external\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/ts-loader/index.js??ref--13-3!./player.ts?vue&type=script&lang=js&external\"","import { render, staticRenderFns } from \"./player.vue?vue&type=template&id=273c60ac\"\nimport script from \"./player.ts?vue&type=script&lang=js&external\"\nexport * from \"./player.ts?vue&type=script&lang=js&external\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}