fullscreen fallback to video #62.

This commit is contained in:
Miroslav Šedivý 2021-05-24 23:56:01 +02:00
parent 3dbb265ef3
commit 8177b23557
2 changed files with 27 additions and 11 deletions

View File

@ -62,7 +62,7 @@ For n.eko room management software visit https://github.com/m1k1o/neko-rooms.
- Disable debug mode by default.
- Remove HTML tags from user name.
- Upgraded `pion/webrtc` to v3 (by @mbattista).
- Added `requestFullscreen` compatibility for older browsers.
- Added `requestFullscreen` compatibility for older browsersn and iOS devices.
- Fixed small lags in video and improved video UX (by @mbattista).
- Added `m1k1o/neko:vncviewer` tag, use `NEKO_VNC_URL` to specify VNC target and use n.eko as a bridge.
- Abiltiy to include neko as a component in another Vue.Js project (by @gbrian).

View File

@ -478,24 +478,40 @@
this.$accessor.remote.toggle()
}
requestFullscreen() {
if (typeof this._player.requestFullscreen === 'function') {
this._player.requestFullscreen()
_elementRequestFullscreen(el: HTMLElement) {
if (typeof el.requestFullscreen === 'function') {
el.requestFullscreen()
//@ts-ignore
} else if (typeof this._player.webkitRequestFullscreen === 'function') {
} else if (typeof el.webkitRequestFullscreen === 'function') {
//@ts-ignore
this._player.webkitRequestFullscreen()
el.webkitRequestFullscreen()
//@ts-ignore
} else if (typeof this._player.webkitEnterFullscreen === 'function') {
} else if (typeof el.webkitEnterFullscreen === 'function') {
//@ts-ignore
this._player.webkitEnterFullscreen()
el.webkitEnterFullscreen()
//@ts-ignore
} else if (typeof this._player.msRequestFullScreen === 'function') {
} else if (typeof el.msRequestFullScreen === 'function') {
//@ts-ignore
this._player.msRequestFullScreen()
el.msRequestFullScreen()
} else {
return false
}
this.onResise()
return true
}
requestFullscreen() {
// try to fullscreen player element
if (this._elementRequestFullscreen(this._player)) {
this.onResise()
return
}
// fallback to fullscreen video itself (on mobile devices)
if (this._elementRequestFullscreen(this._video)) {
this.onResise()
return
}
}
requestPictureInPicture() {