}
private initializePlayer () {
+ this.initSmoothProgressBar()
+
if (this.autoplay === true) {
this.updateVideoFile(undefined, () => this.player.play())
} else {
private disableErrorDisplay () {
this.player.removeClass('vjs-error-display-enabled')
}
+
+ // Thanks: https://github.com/videojs/video.js/issues/4460#issuecomment-312861657
+ private initSmoothProgressBar () {
+ const SeekBar = videojsUntyped.getComponent('SeekBar')
+ SeekBar.prototype.getPercent = function getPercent () {
+ // Allows for smooth scrubbing, when player can't keep up.
+ // const time = (this.player_.scrubbing()) ?
+ // this.player_.getCache().currentTime :
+ // this.player_.currentTime()
+ const time = this.player_.currentTime()
+ const percent = time / this.player_.duration()
+ return percent >= 1 ? 1 : percent
+ }
+ SeekBar.prototype.handleMouseMove = function handleMouseMove (event) {
+ let newTime = this.calculateDistance(event) * this.player_.duration()
+ if (newTime === this.player_.duration()) {
+ newTime = newTime - 0.1
+ }
+ this.player_.currentTime(newTime)
+ this.update()
+ }
+ }
}
videojsUntyped.registerPlugin('peertube', PeerTubePlugin)
@import '_mixins';
$primary-foreground-color: #fff;
+$primary-foreground-opacity: 0.9;
+$primary-foreground-opacity-hover: 1;
$primary-background-color: #000;
+
$font-size: 13px;
$control-bar-height: 34px;
+$slider-bg-color: lighten($primary-background-color, 33%);
+
.video-js.vjs-peertube-skin {
font-size: $font-size;
color: $primary-foreground-color;
line-height: $control-bar-height;
}
- .vjs-mouse-display:before,
- .vjs-play-progress:before,
.vjs-volume-level:before {
content: ''; /* Remove Circle From Progress Bar */
}
background-color: rgba($primary-background-color, 0.5);
}
- $slider-bg-color: lighten($primary-background-color, 33%);
-
.vjs-slider {
background-color: rgba(255, 255, 255, .3);
border-radius: 2px;
height: 5px;
+
+ .vjs-slider-bar {
+ background: $primary-foreground-color;
+ }
}
- /* The slider bar color is used for the progress bar and the volume bar
- (the first two can be removed after a fix that's coming) */
- .vjs-volume-level,
- .vjs-play-progress,
- .vjs-slider-bar {
- background: $primary-foreground-color;
+ .vjs-play-progress .vjs-time-tooltip {
+ display: none;
}
.vjs-load-progress {
background: rgba($slider-bg-color, 0.5);
- }
- .vjs-load-progress div {
- background: rgba($slider-bg-color, 0.75);
+ div {
+ background: rgba($slider-bg-color, 0.75);
+ }
}
.vjs-poster {