diff options
Diffstat (limited to 'client/src/assets/player/p2p-media-loader/p2p-media-loader-plugin.ts')
-rw-r--r-- | client/src/assets/player/p2p-media-loader/p2p-media-loader-plugin.ts | 13 |
1 files changed, 6 insertions, 7 deletions
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..e86900faa 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 | |||
@@ -3,10 +3,11 @@ import { P2PMediaLoaderPluginOptions, PlayerNetworkInfo } from '../peertube-vide | |||
3 | import { Engine, initHlsJsPlayer, initVideoJsContribHlsJsPlayer } from 'p2p-media-loader-hlsjs' | 3 | import { Engine, initHlsJsPlayer, initVideoJsContribHlsJsPlayer } from 'p2p-media-loader-hlsjs' |
4 | import { Events, Segment } from 'p2p-media-loader-core' | 4 | import { Events, Segment } from 'p2p-media-loader-core' |
5 | import { timeToInt } from '../utils' | 5 | import { timeToInt } from '../utils' |
6 | import { registerConfigPlugin, registerSourceHandler } from './hls-plugin' | ||
7 | import * as Hlsjs from 'hls.js' | ||
6 | 8 | ||
7 | // videojs-hlsjs-plugin needs videojs in window | 9 | registerConfigPlugin(videojs) |
8 | window['videojs'] = videojs | 10 | registerSourceHandler(videojs) |
9 | require('@streamroot/videojs-hlsjs-plugin') | ||
10 | 11 | ||
11 | const Plugin = videojs.getPlugin('plugin') | 12 | const Plugin = videojs.getPlugin('plugin') |
12 | class P2pMediaLoaderPlugin extends Plugin { | 13 | class P2pMediaLoaderPlugin extends Plugin { |
@@ -16,7 +17,7 @@ class P2pMediaLoaderPlugin extends Plugin { | |||
16 | } | 17 | } |
17 | private readonly options: P2PMediaLoaderPluginOptions | 18 | private readonly options: P2PMediaLoaderPluginOptions |
18 | 19 | ||
19 | private hlsjs: any // Don't type hlsjs to not bundle the module | 20 | private hlsjs: Hlsjs |
20 | private p2pEngine: Engine | 21 | private p2pEngine: Engine |
21 | private statsP2PBytes = { | 22 | private statsP2PBytes = { |
22 | pendingDownload: [] as number[], | 23 | pendingDownload: [] as number[], |
@@ -88,9 +89,7 @@ class P2pMediaLoaderPlugin extends Plugin { | |||
88 | const options = this.player.tech(true).options_ as any | 89 | const options = this.player.tech(true).options_ as any |
89 | this.p2pEngine = options.hlsjsConfig.loader.getEngine() | 90 | this.p2pEngine = options.hlsjsConfig.loader.getEngine() |
90 | 91 | ||
91 | // Avoid using constants to not import hls.hs | 92 | this.hlsjs.on(Hlsjs.Events.LEVEL_SWITCHING, (_: any, data: any) => { |
92 | // https://github.com/video-dev/hls.js/blob/master/src/events.js#L37 | ||
93 | this.hlsjs.on('hlsLevelSwitching', (_: any, data: any) => { | ||
94 | this.trigger('resolutionChange', { auto: this.hlsjs.autoLevelEnabled, resolutionId: data.height }) | 93 | this.trigger('resolutionChange', { auto: this.hlsjs.autoLevelEnabled, resolutionId: data.height }) |
95 | }) | 94 | }) |
96 | 95 | ||