summaryrefslogtreecommitdiffstats
path: root/assets/js
diff options
context:
space:
mode:
Diffstat (limited to 'assets/js')
-rw-r--r--assets/js/player.js27
1 files changed, 20 insertions, 7 deletions
diff --git a/assets/js/player.js b/assets/js/player.js
index 7d099e66..ee678663 100644
--- a/assets/js/player.js
+++ b/assets/js/player.js
@@ -17,6 +17,7 @@ var options = {
'remainingTimeDisplay',
'Spacer',
'captionsButton',
+ 'audioTrackButton',
'qualitySelector',
'playbackRateMenuButton',
'fullscreenToggle'
@@ -67,6 +68,7 @@ player.on('error', function () {
// add local=true to all current sources
player.src(player.currentSources().map(function (source) {
source.src += '&local=true';
+ return source;
}));
} else if (reloadMakesSense) {
setTimeout(function () {
@@ -145,11 +147,12 @@ function isMobile() {
}
if (isMobile()) {
- player.mobileUi();
+ player.mobileUi({ touchControls: { seekSeconds: 5 * player.playbackRate() } });
var buttons = ['playToggle', 'volumePanel', 'captionsButton'];
- if (video_data.params.quality !== 'dash') buttons.push('qualitySelector');
+ if (!video_data.params.listen && video_data.params.quality === 'dash') buttons.push('audioTrackButton');
+ if (video_data.params.listen || video_data.params.quality !== 'dash') buttons.push('qualitySelector');
// Create new control bar object for operation buttons
const ControlBar = videojs.getComponent('controlBar');
@@ -176,7 +179,7 @@ if (isMobile()) {
var share_element = document.getElementsByClassName('vjs-share-control')[0];
operations_bar_element.append(share_element);
- if (video_data.params.quality === 'dash') {
+ if (!video_data.params.listen && video_data.params.quality === 'dash') {
var http_source_selector = document.getElementsByClassName('vjs-http-source-selector vjs-menu-button')[0];
operations_bar_element.append(http_source_selector);
}
@@ -256,7 +259,7 @@ function updateCookie(newVolume, newSpeed) {
// Set expiration in 2 year
var date = new Date();
- date.setTime(date.getTime() + 63115200);
+ date.setFullYear(date.getFullYear() + 2);
var ipRegex = /^((\d+\.){3}\d+|[A-Fa-f0-9]*:[A-Fa-f0-9:]*:[A-Fa-f0-9:]+)$/;
var domainUsed = location.hostname;
@@ -265,8 +268,10 @@ function updateCookie(newVolume, newSpeed) {
if (domainUsed.charAt(0) !== '.' && !ipRegex.test(domainUsed) && domainUsed !== 'localhost')
domainUsed = '.' + location.hostname;
- document.cookie = 'PREFS=' + cookieData + '; SameSite=Strict; path=/; domain=' +
- domainUsed + '; expires=' + date.toGMTString() + ';';
+ var secure = location.protocol.startsWith("https") ? " Secure;" : "";
+
+ document.cookie = 'PREFS=' + cookieData + '; SameSite=Lax; path=/; domain=' +
+ domainUsed + '; expires=' + date.toGMTString() + ';' + secure;
video_data.params.volume = volumeValue;
video_data.params.speed = speedValue;
@@ -274,6 +279,9 @@ function updateCookie(newVolume, newSpeed) {
player.on('ratechange', function () {
updateCookie(null, player.playbackRate());
+ if (isMobile()) {
+ player.mobileUi({ touchControls: { seekSeconds: 5 * player.playbackRate() } });
+ }
});
player.on('volumechange', function () {
@@ -673,7 +681,12 @@ if (player.share) player.share(shareOptions);
// show the preferred caption by default
if (player_data.preferred_caption_found) {
player.ready(function () {
- player.textTracks()[1].mode = 'showing';
+ if (!video_data.params.listen && video_data.params.quality === 'dash') {
+ // play.textTracks()[0] on DASH mode is showing some debug messages
+ player.textTracks()[1].mode = 'showing';
+ } else {
+ player.textTracks()[0].mode = 'showing';
+ }
});
}