From 638a2950215af1f11be8e8bdd136ca12e5176c32 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Mon, 5 Jun 2023 11:13:38 +0200 Subject: Support storyboards in embed --- client/src/standalone/videos/embed.ts | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) (limited to 'client/src/standalone/videos/embed.ts') diff --git a/client/src/standalone/videos/embed.ts b/client/src/standalone/videos/embed.ts index cffda2cc7..6e37ce193 100644 --- a/client/src/standalone/videos/embed.ts +++ b/client/src/standalone/videos/embed.ts @@ -1,6 +1,7 @@ import './embed.scss' import '../../assets/player/shared/dock/peertube-dock-component' import '../../assets/player/shared/dock/peertube-dock-plugin' +import { PeerTubeServerError } from 'src/types' import videojs from 'video.js' import { peertubeTranslate } from '../../../../shared/core-utils/i18n' import { @@ -27,7 +28,6 @@ import { VideoFetcher } from './shared' import { PlayerHTML } from './shared/player-html' -import { PeerTubeServerError } from 'src/types' export class PeerTubeEmbed { player: videojs.Player @@ -188,9 +188,13 @@ export class PeerTubeEmbed { const { uuid, autoplayFromPreviousVideo, forceAutoplay } = options try { - const { videoResponse, captionsPromise } = await this.videoFetcher.loadVideo({ videoId: uuid, videoPassword: this.videoPassword }) + const { + videoResponse, + captionsPromise, + storyboardsPromise + } = await this.videoFetcher.loadVideo({ videoId: uuid, videoPassword: this.videoPassword }) - return this.buildVideoPlayer({ videoResponse, captionsPromise, autoplayFromPreviousVideo, forceAutoplay }) + return this.buildVideoPlayer({ videoResponse, captionsPromise, storyboardsPromise, autoplayFromPreviousVideo, forceAutoplay }) } catch (err) { if (await this.handlePasswordError(err)) this.loadVideoAndBuildPlayer({ ...options }) @@ -200,11 +204,12 @@ export class PeerTubeEmbed { private async buildVideoPlayer (options: { videoResponse: Response + storyboardsPromise: Promise captionsPromise: Promise autoplayFromPreviousVideo: boolean forceAutoplay: boolean }) { - const { videoResponse, captionsPromise, autoplayFromPreviousVideo, forceAutoplay } = options + const { videoResponse, captionsPromise, storyboardsPromise, autoplayFromPreviousVideo, forceAutoplay } = options this.resetPlayerElement() @@ -226,10 +231,17 @@ export class PeerTubeEmbed { return { live, video: videoInfo, videoFileToken } }) - const [ { video, live, videoFileToken }, translations, captionsResponse, PeertubePlayerManagerModule ] = await Promise.all([ + const [ + { video, live, videoFileToken }, + translations, + captionsResponse, + storyboardsResponse, + PeertubePlayerManagerModule + ] = await Promise.all([ videoInfoPromise, this.translationsPromise, captionsPromise, + storyboardsPromise, this.PeertubePlayerManagerModulePromise ]) @@ -244,6 +256,8 @@ export class PeerTubeEmbed { translations, serverConfig: this.config, + storyboardsResponse, + authorizationHeader: () => this.http.getHeaderTokenValue(), videoFileToken: () => videoFileToken, videoPassword: () => this.videoPassword, -- cgit v1.2.3