- poster: commonOptions.poster,
- inactivityTimeout: commonOptions.inactivityTimeout,
- playbackRates: [ 0.5, 0.75, 1, 1.25, 1.5, 2 ],
-
- plugins,
-
- controlBar: {
- children: this.getControlBarChildren(mode, {
- captions: commonOptions.captions,
- peertubeLink: commonOptions.peertubeLink,
- theaterButton: commonOptions.theaterButton,
-
- nextVideo: commonOptions.nextVideo,
- hasNextVideo: commonOptions.hasNextVideo,
-
- previousVideo: commonOptions.previousVideo,
- hasPreviousVideo: commonOptions.hasPreviousVideo
- }) as any // FIXME: typings
- }
- }
-
- if (commonOptions.language && !isDefaultLocale(commonOptions.language)) {
- Object.assign(videojsOptions, { language: commonOptions.language })
- }
-
- return videojsOptions
- }
-
- private static addP2PMediaLoaderOptions (
- plugins: VideoJSPluginOptions,
- options: PeertubePlayerManagerOptions,
- p2pMediaLoaderModule: any
- ) {
- const p2pMediaLoaderOptions = options.p2pMediaLoader
- const commonOptions = options.common
-
- const trackerAnnounce = p2pMediaLoaderOptions.trackerAnnounce
- .filter(t => t.startsWith('ws'))
-
- const redundancyUrlManager = new RedundancyUrlManager(options.p2pMediaLoader.redundancyBaseUrls)
-
- const p2pMediaLoader: P2PMediaLoaderPluginOptions = {
- redundancyUrlManager,
- type: 'application/x-mpegURL',
- startTime: commonOptions.startTime,
- src: p2pMediaLoaderOptions.playlistUrl
- }
-
- let consumeOnly = false
- // FIXME: typings
- if (navigator && (navigator as any).connection && (navigator as any).connection.type === 'cellular') {
- console.log('We are on a cellular connection: disabling seeding.')
- consumeOnly = true
- }
-
- const p2pMediaLoaderConfig = {
- loader: {
- trackerAnnounce,
- segmentValidator: segmentValidatorFactory(options.p2pMediaLoader.segmentsSha256Url),
- rtcConfig: getRtcConfig(),
- requiredSegmentsPriority: 5,
- segmentUrlBuilder: segmentUrlBuilderFactory(redundancyUrlManager),
- useP2P: getStoredP2PEnabled(),
- consumeOnly
- },
- segments: {
- swarmId: p2pMediaLoaderOptions.playlistUrl