import { getCompleteLocale, getShortLocale, is18nLocale, isDefaultLocale } from '../../../../shared/models/i18n/i18n'
import { segmentValidatorFactory } from './p2p-media-loader/segment-validator'
import { segmentUrlBuilderFactory } from './p2p-media-loader/segment-url-builder'
+import { RedundancyUrlManager } from './p2p-media-loader/redundancy-url-manager'
// Change 'Playback Rate' to 'Speed' (smaller for our settings menu)
videojsUntyped.getComponent('PlaybackRateMenuButton').prototype.controlText_ = 'Speed'
private static videojsLocaleCache: { [ path: string ]: any } = {}
private static playerElementClassName: string
+ private static onPlayerChange: (player: any) => void
static getServerTranslations (serverUrl: string, locale: string) {
const path = PeertubePlayerManager.getLocalePath(serverUrl, locale)
})
}
- static async initialize (mode: PlayerMode, options: PeertubePlayerManagerOptions) {
+ static async initialize (mode: PlayerMode, options: PeertubePlayerManagerOptions, onPlayerChange: (player: any) => void) {
let p2pMediaLoader: any
+ this.onPlayerChange = onPlayerChange
this.playerElementClassName = options.common.playerElement.className
if (mode === 'webtorrent') await import('./webtorrent/webtorrent-plugin')
const player = this
self.addContextMenu(mode, player, options.common.embedUrl)
+
+ PeertubePlayerManager.onPlayerChange(player)
})
}
}
if (mode === 'p2p-media-loader') {
+ const redundancyUrlManager = new RedundancyUrlManager(options.p2pMediaLoader.redundancyBaseUrls)
+
const p2pMediaLoader: P2PMediaLoaderPluginOptions = {
- redundancyBaseUrls: options.p2pMediaLoader.redundancyBaseUrls,
+ redundancyUrlManager,
type: 'application/x-mpegURL',
startTime: commonOptions.startTime,
src: p2pMediaLoaderOptions.playlistUrl
segmentValidator: segmentValidatorFactory(options.p2pMediaLoader.segmentsSha256Url),
rtcConfig: getRtcConfig(),
requiredSegmentsPriority: 5,
- segmentUrlBuilder: segmentUrlBuilderFactory(options.p2pMediaLoader.redundancyBaseUrls)
+ segmentUrlBuilder: segmentUrlBuilderFactory(redundancyUrlManager)
},
segments: {
swarmId: p2pMediaLoaderOptions.playlistUrl