X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fassets%2Fplayer%2Fp2p-media-loader%2Fp2p-media-loader-plugin.ts;h=161c92b5e300ed6110b458f1d7014e4e888880fb;hb=7e37e111116e41530749b88327bc601cb39ade03;hp=512054ae63ab19f2b3c45a1e54850ca358c0b2cc;hpb=cf59a2a0c367683ba35758419499bf6087c192ec;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/assets/player/p2p-media-loader/p2p-media-loader-plugin.ts b/client/src/assets/player/p2p-media-loader/p2p-media-loader-plugin.ts index 512054ae6..161c92b5e 100644 --- a/client/src/assets/player/p2p-media-loader/p2p-media-loader-plugin.ts +++ b/client/src/assets/player/p2p-media-loader/p2p-media-loader-plugin.ts @@ -1,12 +1,13 @@ -import videojs, { VideoJsPlayer } from 'video.js' +import videojs from 'video.js/dist/alt/video.core.js' import { P2PMediaLoaderPluginOptions, PlayerNetworkInfo } from '../peertube-videojs-typings' import { Engine, initHlsJsPlayer, initVideoJsContribHlsJsPlayer } from 'p2p-media-loader-hlsjs' import { Events, Segment } from 'p2p-media-loader-core' import { timeToInt } from '../utils' +import { registerConfigPlugin, registerSourceHandler } from './hls-plugin' +import * as Hlsjs from 'hls.js/dist/hls.light.js' -// videojs-hlsjs-plugin needs videojs in window -window['videojs'] = videojs -require('@streamroot/videojs-hlsjs-plugin') +registerConfigPlugin(videojs) +registerSourceHandler(videojs) const Plugin = videojs.getPlugin('plugin') class P2pMediaLoaderPlugin extends Plugin { @@ -16,7 +17,7 @@ class P2pMediaLoaderPlugin extends Plugin { } private readonly options: P2PMediaLoaderPluginOptions - private hlsjs: any // Don't type hlsjs to not bundle the module + private hlsjs: Hlsjs private p2pEngine: Engine private statsP2PBytes = { pendingDownload: [] as number[], @@ -35,7 +36,7 @@ class P2pMediaLoaderPlugin extends Plugin { private networkInfoInterval: any - constructor (player: VideoJsPlayer, options?: P2PMediaLoaderPluginOptions) { + constructor (player: videojs.Player, options?: P2PMediaLoaderPluginOptions) { super(player) this.options = options @@ -88,9 +89,7 @@ class P2pMediaLoaderPlugin extends Plugin { const options = this.player.tech(true).options_ as any this.p2pEngine = options.hlsjsConfig.loader.getEngine() - // Avoid using constants to not import hls.hs - // https://github.com/video-dev/hls.js/blob/master/src/events.js#L37 - this.hlsjs.on('hlsLevelSwitching', (_: any, data: any) => { + this.hlsjs.on(Hlsjs.Events.LEVEL_SWITCHING, (_: any, data: any) => { this.trigger('resolutionChange', { auto: this.hlsjs.autoLevelEnabled, resolutionId: data.height }) })