]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/assets/player/shared/manager-options/manager-options-builder.ts
Avoid always resuming the end of the video
[github/Chocobozzz/PeerTube.git] / client / src / assets / player / shared / manager-options / manager-options-builder.ts
index 07678493d7d6a230cf7cceeac81002289d8566c1..5d3ee4c4a2cd2477f9f45e619dc82f61cc72c45a 100644 (file)
@@ -20,7 +20,7 @@ export class ManagerOptionsBuilder {
 
   }
 
-  getVideojsOptions (alreadyPlayed: boolean): videojs.PlayerOptions {
+  async getVideojsOptions (alreadyPlayed: boolean): Promise<videojs.PlayerOptions> {
     const commonOptions = this.options.common
 
     let autoplay = this.getAutoPlayValue(commonOptions.autoplay, alreadyPlayed)
@@ -35,6 +35,7 @@ export class ManagerOptionsBuilder {
 
         ...pick(commonOptions, [
           'videoViewUrl',
+          'videoViewIntervalMs',
           'authorizationHeader',
           'startTime',
           'videoDuration',
@@ -61,7 +62,7 @@ export class ManagerOptionsBuilder {
 
     if (this.mode === 'p2p-media-loader') {
       const hlsOptionsBuilder = new HLSOptionsBuilder(this.options, this.p2pMediaLoaderModule)
-      const options = hlsOptionsBuilder.getPluginOptions()
+      const options = await hlsOptionsBuilder.getPluginOptions()
 
       Object.assign(plugins, pick(options, [ 'hlsjs', 'p2pMediaLoader' ]))
       Object.assign(html5, options.html5)
@@ -108,7 +109,7 @@ export class ManagerOptionsBuilder {
     return videojsOptions
   }
 
-  private getAutoPlayValue (autoplay: any, alreadyPlayed: boolean) {
+  private getAutoPlayValue (autoplay: videojs.Autoplay, alreadyPlayed: boolean) {
     if (autoplay !== true) return autoplay
 
     // On first play, disable autoplay to avoid issues
@@ -117,7 +118,9 @@ export class ManagerOptionsBuilder {
       return alreadyPlayed ? 'play' : false
     }
 
-    return 'play'
+    return this.options.common.forceAutoplay
+      ? 'any'
+      : 'play'
   }
 
   getContextMenuOptions (player: videojs.Player, commonOptions: CommonOptions) {