1
0
Fork 0

Reapply playsinline on player fallback

This commit is contained in:
Chocobozzz 2022-10-31 13:47:55 +01:00
parent 6740b6428b
commit eaa5dc3161
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
2 changed files with 15 additions and 1 deletions

View File

@ -173,7 +173,7 @@ describe('Videos all workflow', () => {
await myAccountPage.playPlaylist()
await videoWatchPage.waitUntilVideoName(video2Name, 30 * 1000)
await videoWatchPage.waitUntilVideoName(video2Name, 40 * 1000)
})
it('Should watch the webtorrent playlist in the embed', async () => {

View File

@ -43,6 +43,8 @@ CaptionsButton.prototype.label_ = ' '
export class PeertubePlayerManager {
private static playerElementClassName: string
private static playerElementAttributes: { name: string, value: string }[] = []
private static onPlayerChange: (player: videojs.Player) => void
private static alreadyPlayed = false
private static pluginsManager: PluginsManager
@ -59,8 +61,13 @@ export class PeertubePlayerManager {
this.pluginsManager = options.pluginsManager
this.onPlayerChange = onPlayerChange
this.playerElementClassName = options.common.playerElement.className
for (const name of options.common.playerElement.getAttributeNames()) {
this.playerElementAttributes.push({ name, value: options.common.playerElement.getAttribute(name) })
}
if (mode === 'webtorrent') await import('./shared/webtorrent/webtorrent-plugin')
if (mode === 'p2p-media-loader') {
const [ p2pMediaLoaderModule ] = await Promise.all([
@ -216,8 +223,15 @@ export class PeertubePlayerManager {
private static rebuildAndUpdateVideoElement (player: videojs.Player, commonOptions: CommonOptions) {
const newVideoElement = document.createElement('video')
// Reset class
newVideoElement.className = this.playerElementClassName
// Reapply attributes
for (const { name, value } of this.playerElementAttributes) {
newVideoElement.setAttribute(name, value)
}
// VideoJS wraps our video element inside a div
let currentParentPlayerElement = commonOptions.playerElement.parentNode
// Fix on IOS, don't ask me why