UNPKG

@vime/core

Version:

Customizable, extensible, accessible and framework agnostic media player.

1 lines 6.63 kB
import{r as t,c as i,h as s}from"./p-aa8acb66.js";import{D as h,c as a,e,l as r,h as n}from"./p-b018976f.js";import{l as o}from"./p-e3b0430a.js";import{M as c}from"./p-8b74fa0e.js";import{w as d}from"./p-cbbce638.js";import{d as l}from"./p-b0ea4d0d.js";import{w as u,c as v}from"./p-17652948.js";import"./p-d84b1c8a.js";import"./p-152748b8.js";import"./p-121aab6e.js";import"./p-8acb8eb5.js";var T=function(t,i,s,h){return new(s||(s=Promise))((function(a,e){function r(t){try{o(h.next(t))}catch(t){e(t)}}function n(t){try{o(h.throw(t))}catch(t){e(t)}}function o(t){var i;t.done?a(t.value):(i=t.value,i instanceof s?i:new s((function(t){t(i)}))).then(r,n)}o((h=h.apply(t,i||[])).next())}))};const p=class{constructor(s){t(this,s),this.vmLoadStart=i(this,"vmLoadStart",7),this.vmError=i(this,"vmError",7),this.textTracksDisposal=new h,this.hasAttached=!1,this.version="latest",this.config={},this.autoplay=!1,this.preload="metadata",this.enableTextTracksByDefault=!0,this.shouldRenderNativeTextTracks=!0,this.isTextTrackVisible=!0,this.currentTextTrack=-1,a(this),u(this),d(this,["autoplay","shouldRenderNativeTextTracks","isTextTrackVisible","currentTextTrack"])}onSrcChange(){var t;this.hasAttached&&(this.vmLoadStart.emit(),null===(t=this.dash)||void 0===t||t.attachSource(this.src))}onShouldRenderNativeTextTracks(){var t;this.shouldRenderNativeTextTracks?this.textTracksDisposal.empty():this.hideCurrentTextTrack(),null===(t=this.dash)||void 0===t||t.enableForcedTextStreaming(!this.shouldRenderNativeTextTracks)}onTextTrackChange(){var t,i;if(this.shouldRenderNativeTextTracks&&!e(this.dash)&&(this.dash.setTextTrack(this.isTextTrackVisible?this.currentTextTrack:-1),!this.isTextTrackVisible)){const s=Array.from(null!==(i=null===(t=this.mediaEl)||void 0===t?void 0:t.textTracks)&&void 0!==i?i:[])[this.currentTextTrack];"hidden"===(null==s?void 0:s.mode)&&this.dispatch("currentTextTrack",-1)}}connectedCallback(){this.dispatch=v(this),this.mediaEl&&this.setupDash()}disconnectedCallback(){this.textTracksDisposal.empty(),this.destroyDash()}setupDash(){return T(this,void 0,void 0,(function*(){try{const t=this.libSrc||`https://cdn.jsdelivr.net/npm/dashjs@${this.version}/dist/dash.all.min.js`,i=yield o(t,"dashjs");this.dash=i.MediaPlayer(this.config).create(),this.dash.initialize(this.mediaEl,null,this.autoplay),this.dash.setTextDefaultEnabled(this.enableTextTracksByDefault),this.dash.enableForcedTextStreaming(!this.shouldRenderNativeTextTracks),this.dash.on(i.MediaPlayer.events.PLAYBACK_METADATA_LOADED,(()=>{this.dispatch("mediaType",c.Video),this.dispatch("currentSrc",this.src),this.dispatchLevels(),this.listenToTextTracksForChanges(),this.dispatch("playbackReady",!0)})),this.dash.on(i.MediaPlayer.events.TRACK_CHANGE_RENDERED,(()=>{this.shouldRenderNativeTextTracks||this.hideCurrentTextTrack()})),this.dash.on(i.MediaPlayer.events.ERROR,(t=>{this.vmError.emit(t)})),this.hasAttached=!0}catch(t){this.vmError.emit(t)}}))}destroyDash(){var t;return T(this,void 0,void 0,(function*(){null===(t=this.dash)||void 0===t||t.reset(),this.hasAttached=!1}))}onMediaElChange(t){return T(this,void 0,void 0,(function*(){this.destroyDash(),e(t.detail)||(this.mediaEl=t.detail,yield this.setupDash())}))}levelToPlaybackQuality(t){return-1===t?"Auto":`${t.height}p`}findLevelIndexFromQuality(t){return this.dash.getBitrateInfoListFor("video").findIndex((i=>this.levelToPlaybackQuality(i)===t))}dispatchLevels(){try{const t=this.dash.getBitrateInfoListFor("video");(null==t?void 0:t.length)>0&&(this.dispatch("playbackQualities",["Auto",...t.map(this.levelToPlaybackQuality)]),this.dispatch("playbackQuality","Auto"))}catch(t){this.vmError.emit(t)}}listenToTextTracksForChanges(){var t,i,s;if(this.textTracksDisposal.empty(),e(this.mediaEl)||this.shouldRenderNativeTextTracks)return;const h=null!==(s=(null===(i=null===(t=this.dash)||void 0===t?void 0:t.getCurrentTrackFor("text"))||void 0===i?void 0:i.index)-1)&&void 0!==s?s:-1;this.currentTextTrack=h,this.dispatch("currentTextTrack",h),this.textTracksDisposal.add(r(this.mediaEl.textTracks,"change",this.onTextTracksChange.bind(this)))}getTextTracks(){var t,i;return Array.from(null!==(i=null===(t=this.mediaEl)||void 0===t?void 0:t.textTracks)&&void 0!==i?i:[])}hideCurrentTextTrack(){const t=this.getTextTracks();t[this.currentTextTrack]&&this.isTextTrackVisible&&(t[this.currentTextTrack].mode="hidden")}onTextTracksChange(){this.hideCurrentTextTrack(),this.dispatch("textTracks",this.getTextTracks()),this.dispatch("isTextTrackVisible",this.isTextTrackVisible),this.dispatch("currentTextTrack",this.currentTextTrack)}getAdapter(){var t,i;return T(this,void 0,void 0,(function*(){const s=null!==(i=yield null===(t=this.videoProvider)||void 0===t?void 0:t.getAdapter())&&void 0!==i?i:{},h=s.canPlay;return Object.assign(Object.assign({},s),{getInternalPlayer:()=>T(this,void 0,void 0,(function*(){return this.dash})),canPlay:t=>T(this,void 0,void 0,(function*(){var i;return n(t)&&l.test(t)||null!==(i=null==h?void 0:h(t))&&void 0!==i&&i})),canSetPlaybackQuality:()=>T(this,void 0,void 0,(function*(){var t,i;try{return(null===(i=null===(t=this.dash)||void 0===t?void 0:t.getBitrateInfoListFor("video"))||void 0===i?void 0:i.length)>0}catch(t){return this.vmError.emit(t),!1}})),setPlaybackQuality:t=>T(this,void 0,void 0,(function*(){if(!e(this.dash)){const i=this.findLevelIndexFromQuality(t);this.dash.updateSettings({streaming:{abr:{autoSwitchBitrate:{video:-1===i}}}}),i>=0&&this.dash.setQualityFor("video",i),this.dispatch("playbackQuality",t)}})),setCurrentTextTrack:t=>T(this,void 0,void 0,(function*(){var i;this.shouldRenderNativeTextTracks?s.setCurrentTextTrack(t):(this.currentTextTrack=t,null===(i=this.dash)||void 0===i||i.setTextTrack(t),this.onTextTracksChange())})),setTextTrackVisibility:t=>T(this,void 0,void 0,(function*(){var i;this.shouldRenderNativeTextTracks?s.setTextTrackVisibility(t):(this.isTextTrackVisible=t,null===(i=this.dash)||void 0===i||i.enableText(t),this.onTextTracksChange())}))})}))}render(){return s("vm-video",{willAttach:!0,crossOrigin:this.crossOrigin,preload:this.preload,poster:this.poster,controlsList:this.controlsList,autoPiP:this.autoPiP,disablePiP:this.disablePiP,hasCustomTextManager:!this.shouldRenderNativeTextTracks,disableRemotePlayback:this.disableRemotePlayback,mediaTitle:this.mediaTitle,ref:t=>{this.videoProvider=t}})}static get watchers(){return{src:["onSrcChange"],hasAttached:["onSrcChange"],shouldRenderNativeTextTracks:["onShouldRenderNativeTextTracks"],isTextTrackVisible:["onTextTrackChange"],currentTextTrack:["onTextTrackChange"]}}};p.style=":host{z-index:var(--vm-media-z-index)}";export{p as vm_dash}