Disable auto resolution on HTTP fallback

pull/707/head
Chocobozzz 2018-06-22 15:06:33 +02:00
parent 1a49822c32
commit c4082b8b4e
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
4 changed files with 30 additions and 9 deletions

View File

@ -57,6 +57,7 @@ class PeerTubePlugin extends Plugin {
private renderer
private fakeRenderer
private autoResolution = true
private forbidAutoResolution = false
private isAutoResolutionObservation = false
private videoViewInterval
@ -304,11 +305,17 @@ class PeerTubePlugin extends Plugin {
this.trigger('autoResolutionUpdate')
}
disableAutoResolution () {
disableAutoResolution (forbid = false) {
if (forbid === true) this.forbidAutoResolution = true
this.autoResolution = false
this.trigger('autoResolutionUpdate')
}
isAutoResolutionForbidden () {
return this.forbidAutoResolution === true
}
getCurrentVideoFile () {
return this.currentVideoFile
}
@ -509,6 +516,8 @@ class PeerTubePlugin extends Plugin {
}
private fallbackToHttp (done?: Function, play = true) {
this.disableAutoResolution(true)
this.flushVideoFile(this.currentVideoFile, true)
this.torrent = null
@ -555,7 +564,7 @@ class PeerTubePlugin extends Plugin {
this.player.controlBar.on('mouseenter', () => disableInactivity())
settingsDialog.on('mouseenter', () => disableInactivity())
this.player.controlBar.on('mouseleave', () => enableInactivity())
settingsDialog.on('mouseleave', () => enableInactivity())
// settingsDialog.on('mouseleave', () => enableInactivity())
}
private pickAverageVideoFile () {

View File

@ -12,6 +12,7 @@ class ResolutionMenuButton extends MenuButton {
this.player = player
player.peertube().on('videoFileUpdate', () => this.updateLabel())
player.peertube().on('autoResolutionUpdate', () => this.updateLabel())
}
createEl () {

View File

@ -19,6 +19,8 @@ class ResolutionMenuItem extends MenuItem {
}
handleClick (event) {
if (this.id === -1 && this.player_.peertube().isAutoResolutionForbidden()) return
super.handleClick(event)
// Auto resolution
@ -32,6 +34,15 @@ class ResolutionMenuItem extends MenuItem {
}
updateSelection () {
// Check if auto resolution is forbidden or not
if (this.id === -1) {
if (this.player_.peertube().isAutoResolutionForbidden()) {
this.addClass('disabled')
} else {
this.removeClass('disabled')
}
}
if (this.player_.peertube().isAutoResolutionOn()) {
this.selected(this.id === -1)
return

View File

@ -99,8 +99,11 @@ $setting-transition-easing: ease-out;
transition: all $setting-transition-duration $setting-transition-easing;
.vjs-menu-item {
font-size: 1em;
text-transform: initial;
&:hover {
cursor: pointer;
background-color: rgba(255, 255, 255, 0.2);
}
@ -111,14 +114,11 @@ $setting-transition-easing: ease-out;
&:last-child {
margin-bottom: 5px;
}
}
li {
font-size: 1em;
text-transform: initial;
&:hover {
cursor: pointer;
&.disabled {
opacity: 0.5;
cursor: default !important;
background-color: inherit !important;
}
}
}