Don't not autoplay live without autoplay setting
This commit is contained in:
parent
21e7302014
commit
7dcd45a9a2
|
@ -90,7 +90,7 @@ export class PeerTubeEmbed {
|
||||||
|
|
||||||
if (!videoId) return
|
if (!videoId) return
|
||||||
|
|
||||||
return this.loadVideoAndBuildPlayer({ uuid: videoId, forceAutoplay: false })
|
return this.loadVideoAndBuildPlayer({ uuid: videoId, autoplayFromPreviousVideo: false, forceAutoplay: false })
|
||||||
}
|
}
|
||||||
|
|
||||||
private async initPlaylist () {
|
private async initPlaylist () {
|
||||||
|
@ -147,7 +147,7 @@ export class PeerTubeEmbed {
|
||||||
|
|
||||||
this.playlistTracker.setCurrentElement(next)
|
this.playlistTracker.setCurrentElement(next)
|
||||||
|
|
||||||
return this.loadVideoAndBuildPlayer({ uuid: next.video.uuid, forceAutoplay: false })
|
return this.loadVideoAndBuildPlayer({ uuid: next.video.uuid, autoplayFromPreviousVideo: true, forceAutoplay: false })
|
||||||
}
|
}
|
||||||
|
|
||||||
async playPreviousPlaylistVideo () {
|
async playPreviousPlaylistVideo () {
|
||||||
|
@ -159,7 +159,7 @@ export class PeerTubeEmbed {
|
||||||
|
|
||||||
this.playlistTracker.setCurrentElement(previous)
|
this.playlistTracker.setCurrentElement(previous)
|
||||||
|
|
||||||
await this.loadVideoAndBuildPlayer({ uuid: previous.video.uuid, forceAutoplay: false })
|
await this.loadVideoAndBuildPlayer({ uuid: previous.video.uuid, autoplayFromPreviousVideo: true, forceAutoplay: false })
|
||||||
}
|
}
|
||||||
|
|
||||||
getCurrentPlaylistPosition () {
|
getCurrentPlaylistPosition () {
|
||||||
|
@ -170,14 +170,15 @@ export class PeerTubeEmbed {
|
||||||
|
|
||||||
private async loadVideoAndBuildPlayer (options: {
|
private async loadVideoAndBuildPlayer (options: {
|
||||||
uuid: string
|
uuid: string
|
||||||
|
autoplayFromPreviousVideo: boolean
|
||||||
forceAutoplay: boolean
|
forceAutoplay: boolean
|
||||||
}) {
|
}) {
|
||||||
const { uuid, forceAutoplay } = options
|
const { uuid, autoplayFromPreviousVideo, forceAutoplay } = options
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const { videoResponse, captionsPromise } = await this.videoFetcher.loadVideo(uuid)
|
const { videoResponse, captionsPromise } = await this.videoFetcher.loadVideo(uuid)
|
||||||
|
|
||||||
return this.buildVideoPlayer({ videoResponse, captionsPromise, forceAutoplay })
|
return this.buildVideoPlayer({ videoResponse, captionsPromise, autoplayFromPreviousVideo, forceAutoplay })
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
this.playerHTML.displayError(err.message, await this.translationsPromise)
|
this.playerHTML.displayError(err.message, await this.translationsPromise)
|
||||||
}
|
}
|
||||||
|
@ -186,17 +187,18 @@ export class PeerTubeEmbed {
|
||||||
private async buildVideoPlayer (options: {
|
private async buildVideoPlayer (options: {
|
||||||
videoResponse: Response
|
videoResponse: Response
|
||||||
captionsPromise: Promise<Response>
|
captionsPromise: Promise<Response>
|
||||||
|
autoplayFromPreviousVideo: boolean
|
||||||
forceAutoplay: boolean
|
forceAutoplay: boolean
|
||||||
}) {
|
}) {
|
||||||
const { videoResponse, captionsPromise, forceAutoplay } = options
|
const { videoResponse, captionsPromise, autoplayFromPreviousVideo, forceAutoplay } = options
|
||||||
|
|
||||||
const alreadyHadPlayer = this.resetPlayerElement()
|
this.resetPlayerElement()
|
||||||
|
|
||||||
const videoInfoPromise = videoResponse.json()
|
const videoInfoPromise = videoResponse.json()
|
||||||
.then(async (videoInfo: VideoDetails) => {
|
.then(async (videoInfo: VideoDetails) => {
|
||||||
this.playerManagerOptions.loadParams(this.config, videoInfo)
|
this.playerManagerOptions.loadParams(this.config, videoInfo)
|
||||||
|
|
||||||
if (!alreadyHadPlayer && !this.playerManagerOptions.hasAutoplay()) {
|
if (!autoplayFromPreviousVideo && !this.playerManagerOptions.hasAutoplay()) {
|
||||||
this.playerHTML.buildPlaceholder(videoInfo)
|
this.playerHTML.buildPlaceholder(videoInfo)
|
||||||
}
|
}
|
||||||
const live = videoInfo.isLive
|
const live = videoInfo.isLive
|
||||||
|
@ -224,14 +226,14 @@ export class PeerTubeEmbed {
|
||||||
const playerOptions = await this.playerManagerOptions.getPlayerOptions({
|
const playerOptions = await this.playerManagerOptions.getPlayerOptions({
|
||||||
video,
|
video,
|
||||||
captionsResponse,
|
captionsResponse,
|
||||||
alreadyHadPlayer,
|
autoplayFromPreviousVideo,
|
||||||
translations,
|
translations,
|
||||||
serverConfig: this.config,
|
serverConfig: this.config,
|
||||||
|
|
||||||
authorizationHeader: () => this.http.getHeaderTokenValue(),
|
authorizationHeader: () => this.http.getHeaderTokenValue(),
|
||||||
videoFileToken: () => videoFileToken,
|
videoFileToken: () => videoFileToken,
|
||||||
|
|
||||||
onVideoUpdate: (uuid: string) => this.loadVideoAndBuildPlayer({ uuid, forceAutoplay: false }),
|
onVideoUpdate: (uuid: string) => this.loadVideoAndBuildPlayer({ uuid, autoplayFromPreviousVideo: true, forceAutoplay: false }),
|
||||||
|
|
||||||
playlistTracker: this.playlistTracker,
|
playlistTracker: this.playlistTracker,
|
||||||
playNextPlaylistVideo: () => this.playNextPlaylistVideo(),
|
playNextPlaylistVideo: () => this.playNextPlaylistVideo(),
|
||||||
|
@ -277,7 +279,7 @@ export class PeerTubeEmbed {
|
||||||
video,
|
video,
|
||||||
onPublishedVideo: () => {
|
onPublishedVideo: () => {
|
||||||
this.liveManager.stopListeningForChanges(video)
|
this.liveManager.stopListeningForChanges(video)
|
||||||
this.loadVideoAndBuildPlayer({ uuid: video.uuid, forceAutoplay: true })
|
this.loadVideoAndBuildPlayer({ uuid: video.uuid, autoplayFromPreviousVideo: false, forceAutoplay: true })
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -294,12 +296,9 @@ export class PeerTubeEmbed {
|
||||||
}
|
}
|
||||||
|
|
||||||
private resetPlayerElement () {
|
private resetPlayerElement () {
|
||||||
let alreadyHadPlayer = false
|
|
||||||
|
|
||||||
if (this.player) {
|
if (this.player) {
|
||||||
this.player.dispose()
|
this.player.dispose()
|
||||||
this.player = undefined
|
this.player = undefined
|
||||||
alreadyHadPlayer = true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const playerElement = document.createElement('video')
|
const playerElement = document.createElement('video')
|
||||||
|
@ -308,8 +307,6 @@ export class PeerTubeEmbed {
|
||||||
|
|
||||||
this.playerHTML.setPlayerElement(playerElement)
|
this.playerHTML.setPlayerElement(playerElement)
|
||||||
this.playerHTML.addPlayerElementToDOM()
|
this.playerHTML.addPlayerElementToDOM()
|
||||||
|
|
||||||
return alreadyHadPlayer
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private async buildPlayerPlaylistUpnext () {
|
private async buildPlayerPlaylistUpnext () {
|
||||||
|
|
|
@ -162,7 +162,7 @@ export class PlayerManagerOptions {
|
||||||
|
|
||||||
serverConfig: HTMLServerConfig
|
serverConfig: HTMLServerConfig
|
||||||
|
|
||||||
alreadyHadPlayer: boolean
|
autoplayFromPreviousVideo: boolean
|
||||||
|
|
||||||
translations: Translations
|
translations: Translations
|
||||||
|
|
||||||
|
@ -174,7 +174,7 @@ export class PlayerManagerOptions {
|
||||||
const {
|
const {
|
||||||
video,
|
video,
|
||||||
captionsResponse,
|
captionsResponse,
|
||||||
alreadyHadPlayer,
|
autoplayFromPreviousVideo,
|
||||||
videoFileToken,
|
videoFileToken,
|
||||||
translations,
|
translations,
|
||||||
forceAutoplay,
|
forceAutoplay,
|
||||||
|
@ -189,7 +189,7 @@ export class PlayerManagerOptions {
|
||||||
const playerOptions: PeertubePlayerManagerOptions = {
|
const playerOptions: PeertubePlayerManagerOptions = {
|
||||||
common: {
|
common: {
|
||||||
// Autoplay in playlist mode
|
// Autoplay in playlist mode
|
||||||
autoplay: alreadyHadPlayer ? true : this.autoplay,
|
autoplay: autoplayFromPreviousVideo ? true : this.autoplay,
|
||||||
forceAutoplay,
|
forceAutoplay,
|
||||||
|
|
||||||
controls: this.controls,
|
controls: this.controls,
|
||||||
|
|
|
@ -8128,17 +8128,13 @@ components:
|
||||||
NotificationSettingValue:
|
NotificationSettingValue:
|
||||||
type: integer
|
type: integer
|
||||||
description: >
|
description: >
|
||||||
Notification type
|
Notification type. One of the following values, or a sum of multiple values:
|
||||||
|
|
||||||
- `0` NONE
|
- `0` NONE
|
||||||
|
|
||||||
- `1` WEB
|
- `1` WEB
|
||||||
|
|
||||||
- `2` EMAIL
|
- `2` EMAIL
|
||||||
enum:
|
|
||||||
- 0
|
|
||||||
- 1
|
|
||||||
- 2
|
|
||||||
Notification:
|
Notification:
|
||||||
properties:
|
properties:
|
||||||
id:
|
id:
|
||||||
|
|
Loading…
Reference in New Issue