Fix viewers for lives

pull/3423/head
Chocobozzz 2020-12-07 15:58:57 +01:00
parent 7b9f22ed2a
commit 10f26f4203
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
3 changed files with 16 additions and 3 deletions

View File

@ -229,7 +229,8 @@ export class PeertubePlayerManager {
userWatching: commonOptions.userWatching,
subtitle: commonOptions.subtitle,
videoCaptions: commonOptions.videoCaptions,
stopTime: commonOptions.stopTime
stopTime: commonOptions.stopTime,
isLive: commonOptions.isLive
}
}

View File

@ -32,6 +32,8 @@ class PeerTubePlugin extends Plugin {
private userWatchingVideoInterval: any
private lastResolutionChange: ResolutionUpdateData
private isLive: boolean
private menuOpened = false
private mouseInControlBar = false
private readonly savedInactivityTimeout: number
@ -42,6 +44,7 @@ class PeerTubePlugin extends Plugin {
this.videoViewUrl = options.videoViewUrl
this.videoDuration = options.videoDuration
this.videoCaptions = options.videoCaptions
this.isLive = options.isLive
this.savedInactivityTimeout = player.options_.inactivityTimeout
@ -152,7 +155,9 @@ class PeerTubePlugin extends Plugin {
// After 30 seconds (or 3/4 of the video), add a view to the video
let minSecondsToView = 30
if (this.videoDuration < minSecondsToView) minSecondsToView = (this.videoDuration * 3) / 4
if (!this.isLive && this.videoDuration < minSecondsToView) {
minSecondsToView = (this.videoDuration * 3) / 4
}
let secondsViewed = 0
this.videoViewInterval = setInterval(() => {
@ -160,7 +165,12 @@ class PeerTubePlugin extends Plugin {
secondsViewed += 1
if (secondsViewed > minSecondsToView) {
this.clearVideoViewInterval()
// Restart the loop if this is a live
if (this.isLive) {
secondsViewed = 0
} else {
this.clearVideoViewInterval()
}
this.addViewToVideo().catch(err => console.error(err))
}

View File

@ -106,6 +106,8 @@ type PeerTubePluginOptions = {
videoCaptions: VideoJSCaption[]
stopTime: number | string
isLive: boolean
}
type PlaylistPluginOptions = {