mirror of https://github.com/Chocobozzz/PeerTube
Use server video ratio if available
parent
9953825499
commit
dfe98695d6
|
@ -778,6 +778,8 @@ export class VideoWatchComponent implements OnInit, OnDestroy {
|
|||
videoShortUUID: video.shortUUID,
|
||||
videoUUID: video.uuid,
|
||||
|
||||
videoRatio: video.aspectRatio,
|
||||
|
||||
previousVideo: {
|
||||
enabled: this.playlist && this.videoWatchPlaylist.hasPreviousVideo(),
|
||||
|
||||
|
|
|
@ -375,6 +375,8 @@ export class PeerTubePlayer {
|
|||
videoUUID: () => this.currentLoadOptions.videoUUID,
|
||||
subtitle: () => this.currentLoadOptions.subtitle,
|
||||
|
||||
videoRatio: () => this.currentLoadOptions.videoRatio,
|
||||
|
||||
poster: () => this.currentLoadOptions.poster,
|
||||
|
||||
autoPlayerRatio: this.options.autoPlayerRatio
|
||||
|
|
|
@ -225,18 +225,31 @@ class PeerTubePlugin extends Plugin {
|
|||
|
||||
const defaultRatio = getComputedStyle(this.player.el()).getPropertyValue(this.options.autoPlayerRatio.cssRatioVariable)
|
||||
|
||||
if (this.options.videoRatio()) {
|
||||
this.adaptPlayerFromRatio({ ratio: this.options.videoRatio(), defaultRatio })
|
||||
}
|
||||
|
||||
this.player.on('video-ratio-changed', (_event, data: { ratio: number }) => {
|
||||
this.adaptPlayerFromRatio({ ratio: data.ratio, defaultRatio })
|
||||
})
|
||||
}
|
||||
|
||||
private adaptPlayerFromRatio (options: {
|
||||
ratio: number
|
||||
defaultRatio: string
|
||||
}) {
|
||||
const { ratio, defaultRatio } = options
|
||||
|
||||
const el = this.player.el() as HTMLElement
|
||||
|
||||
// In portrait screen mode, we allow player with bigger height size than width
|
||||
const portraitMode = getComputedStyle(el).getPropertyValue(this.options.autoPlayerRatio.cssPlayerPortraitModeVariable) === '1'
|
||||
|
||||
const currentRatio = isNaN(data.ratio) || (!portraitMode && data.ratio < 1)
|
||||
const currentRatio = isNaN(ratio) || (!portraitMode && ratio < 1)
|
||||
? defaultRatio
|
||||
: data.ratio
|
||||
: ratio
|
||||
|
||||
el.style.setProperty('--player-ratio', currentRatio + '')
|
||||
})
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
|
|
@ -77,6 +77,7 @@ export type PeerTubePlayerLoadOptions = {
|
|||
videoShortUUID: string
|
||||
|
||||
duration: number
|
||||
videoRatio: number
|
||||
|
||||
requiresUserAuth: boolean
|
||||
videoFileToken: () => string
|
||||
|
|
|
@ -129,6 +129,8 @@ type PeerTubePluginOptions = {
|
|||
videoUUID: () => string
|
||||
subtitle: () => string
|
||||
|
||||
videoRatio: () => number
|
||||
|
||||
poster: () => string
|
||||
}
|
||||
|
||||
|
|
|
@ -290,6 +290,7 @@ export class PlayerOptionsBuilder {
|
|||
videoUUID: video.uuid,
|
||||
|
||||
duration: video.duration,
|
||||
videoRatio: video.aspectRatio,
|
||||
|
||||
poster: window.location.origin + video.previewPath,
|
||||
|
||||
|
|
Loading…
Reference in New Issue