Playback speed control settings
This commit is contained in:
parent
7608615702
commit
ea30ad9494
3
.gitignore
vendored
3
.gitignore
vendored
@ -6,3 +6,6 @@ aws.json
|
|||||||
*.mp4
|
*.mp4
|
||||||
index-*.html
|
index-*.html
|
||||||
notes.txt
|
notes.txt
|
||||||
|
.idea
|
||||||
|
.DS_Store
|
||||||
|
npm-debug.log
|
@ -21,7 +21,7 @@
|
|||||||
captions: {
|
captions: {
|
||||||
defaultActive: true
|
defaultActive: true
|
||||||
},
|
},
|
||||||
controls: ['play-large', 'play', 'speed-up', 'progress', 'current-time', 'mute', 'volume', 'captions', 'settings', 'fullscreen']
|
controls: ['play', 'speed-up', 'speed-down', 'progress', 'volume', 'captions', 'settings', 'fullscreen', 'fast-forward']
|
||||||
});
|
});
|
||||||
plyr.loadSprite('dist/demo.svg');
|
plyr.loadSprite('dist/demo.svg');
|
||||||
|
|
||||||
|
4
dist/plyr.js
vendored
4
dist/plyr.js
vendored
File diff suppressed because one or more lines are too long
@ -85,7 +85,8 @@
|
|||||||
fullscreen: '[data-plyr="fullscreen"]',
|
fullscreen: '[data-plyr="fullscreen"]',
|
||||||
settings: '[data-plyr="settings"]',
|
settings: '[data-plyr="settings"]',
|
||||||
pip: '[data-plyr="pip"]',
|
pip: '[data-plyr="pip"]',
|
||||||
airplay: '[data-plyr="airplay"]'
|
airplay: '[data-plyr="airplay"]',
|
||||||
|
speed: '[data-plyr="speed"]'
|
||||||
},
|
},
|
||||||
volume: {
|
volume: {
|
||||||
input: '[data-plyr="volume"]',
|
input: '[data-plyr="volume"]',
|
||||||
@ -987,7 +988,7 @@
|
|||||||
'<li role="tab">',
|
'<li role="tab">',
|
||||||
'<button type="button" class="plyr__control plyr__control--forward" id="plyr-settings-{id}-speed-toggle" aria-haspopup="true" aria-controls="plyr-settings-{id}-speed" aria-expanded="false">',
|
'<button type="button" class="plyr__control plyr__control--forward" id="plyr-settings-{id}-speed-toggle" aria-haspopup="true" aria-controls="plyr-settings-{id}-speed" aria-expanded="false">',
|
||||||
config.i18n.speed +
|
config.i18n.speed +
|
||||||
'<span class="plyr__menu__value">{speed}</span>',
|
'<span class="plyr__menu__value" data-menu="speed">{speed}</span>',
|
||||||
'</button>',
|
'</button>',
|
||||||
'</li>',
|
'</li>',
|
||||||
'<li role="tab">',
|
'<li role="tab">',
|
||||||
@ -1013,7 +1014,7 @@
|
|||||||
'</li>',
|
'</li>',
|
||||||
'</ul>',
|
'</ul>',
|
||||||
'</div>',
|
'</div>',
|
||||||
'<div class="plyr__menu__secondary" id="plyr-settings-{id}-speed" aria-hidden="true" aria-labelled-by="plyr-settings-{id}-speed-toggle" role="tabpanel" tabindex="-1">',
|
'<form class="plyr__menu__secondary" id="plyr-settings-{id}-speed" aria-hidden="true" aria-labelled-by="plyr-settings-{id}-speed-toggle" role="tabpanel" tabindex="-1">',
|
||||||
'<ul>',
|
'<ul>',
|
||||||
'<li role="tab">',
|
'<li role="tab">',
|
||||||
'<button type="button" class="plyr__control plyr__control--back" aria-haspopup="true" aria-controls="plyr-settings-{id}-primary" aria-expanded="false">',
|
'<button type="button" class="plyr__control plyr__control--back" aria-haspopup="true" aria-controls="plyr-settings-{id}-primary" aria-expanded="false">',
|
||||||
@ -1021,19 +1022,31 @@
|
|||||||
'</button>',
|
'</button>',
|
||||||
'</li>',
|
'</li>',
|
||||||
'<li>',
|
'<li>',
|
||||||
'<button type="button" class="plyr__control">2×</button>',
|
'<label class="plyr__control">',
|
||||||
|
'<input type="radio" name="speed" data-plyr="speed" value="2.0" '+ (config.currentSpeed === 2 ? 'checked' : '') +'>',
|
||||||
|
'2.0×',
|
||||||
|
'</label>',
|
||||||
'</li>',
|
'</li>',
|
||||||
'<li>',
|
'<li>',
|
||||||
'<button type="button" class="plyr__control">1.5×</button>',
|
'<label class="plyr__control">',
|
||||||
|
'<input type="radio" name="speed" data-plyr="speed" value="1.5" '+ (config.currentSpeed === 1.5 ? 'checked' : '') +'>',
|
||||||
|
'1.5×',
|
||||||
|
'</label>',
|
||||||
'</li>',
|
'</li>',
|
||||||
'<li>',
|
'<li>',
|
||||||
'<button type="button" class="plyr__control">1×</button>',
|
'<label class="plyr__control">',
|
||||||
|
'<input type="radio" name="speed" data-plyr="speed" value="1.0" '+ (config.currentSpeed === 1 ? 'checked' : '') +'>',
|
||||||
|
'1.0×',
|
||||||
|
'</label>',
|
||||||
'</li>',
|
'</li>',
|
||||||
'<li>',
|
'<li>',
|
||||||
'<button type="button" class="plyr__control">0.5×</button>',
|
'<label class="plyr__control">',
|
||||||
|
'<input type="radio" name="speed" data-plyr="speed" value="0.5" '+ (config.currentSpeed === 0.5 ? 'checked' : '') +'>',
|
||||||
|
'0.5×',
|
||||||
|
'</label>',
|
||||||
'</li>',
|
'</li>',
|
||||||
'</ul>',
|
'</ul>',
|
||||||
'</div>',
|
'</form>',
|
||||||
'<div class="plyr__menu__secondary" id="plyr-settings-{id}-quality" aria-hidden="true" aria-labelled-by="plyr-settings-{id}-quality-toggle" role="tabpanel" tabindex="-1">',
|
'<div class="plyr__menu__secondary" id="plyr-settings-{id}-quality" aria-hidden="true" aria-labelled-by="plyr-settings-{id}-quality-toggle" role="tabpanel" tabindex="-1">',
|
||||||
'<ul>',
|
'<ul>',
|
||||||
'<li role="tab">',
|
'<li role="tab">',
|
||||||
@ -1643,8 +1656,8 @@
|
|||||||
// Replace seek time instances
|
// Replace seek time instances
|
||||||
html = replaceAll(html, '{seektime}', config.seekTime);
|
html = replaceAll(html, '{seektime}', config.seekTime);
|
||||||
|
|
||||||
// Replace seek time instances
|
// Replace speed time instances
|
||||||
html = replaceAll(html, '{speed}', config.currentSpeed.toFixed(1).toString().replace('.0', '') + '×');
|
html = replaceAll(html, '{speed}', getSpeedDisplayValue());
|
||||||
|
|
||||||
// Replace current captions language
|
// Replace current captions language
|
||||||
html = replaceAll(html, '{lang}', 'English');
|
html = replaceAll(html, '{lang}', 'English');
|
||||||
@ -1682,6 +1695,10 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getSpeedDisplayValue() {
|
||||||
|
return config.currentSpeed.toFixed(1).toString().replace('.0', '') + '×'
|
||||||
|
}
|
||||||
|
|
||||||
// Find the UI controls and store references
|
// Find the UI controls and store references
|
||||||
function findElements() {
|
function findElements() {
|
||||||
try {
|
try {
|
||||||
@ -1697,7 +1714,8 @@
|
|||||||
forward: getElement(config.selectors.buttons.forward),
|
forward: getElement(config.selectors.buttons.forward),
|
||||||
fullscreen: getElement(config.selectors.buttons.fullscreen),
|
fullscreen: getElement(config.selectors.buttons.fullscreen),
|
||||||
settings: getElement(config.selectors.buttons.settings),
|
settings: getElement(config.selectors.buttons.settings),
|
||||||
pip: getElement(config.selectors.buttons.pip)
|
pip: getElement(config.selectors.buttons.pip),
|
||||||
|
speed: document.querySelectorAll(config.selectors.buttons.speed)
|
||||||
};
|
};
|
||||||
|
|
||||||
// Inputs
|
// Inputs
|
||||||
@ -2427,6 +2445,9 @@
|
|||||||
updateStorage({
|
updateStorage({
|
||||||
speed: speed
|
speed: speed
|
||||||
});
|
});
|
||||||
|
|
||||||
|
//Update current value of menu
|
||||||
|
document.querySelector('[data-menu="speed"]').innerHTML = getSpeedDisplayValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Rewind
|
// Rewind
|
||||||
@ -3537,7 +3558,10 @@
|
|||||||
proxy(plyr.buttons.forward, 'click', config.listeners.forward, forward);
|
proxy(plyr.buttons.forward, 'click', config.listeners.forward, forward);
|
||||||
|
|
||||||
// Speed-up
|
// Speed-up
|
||||||
proxy(plyr.buttons.speed, 'click', config.listeners.speed, setSpeed);
|
proxy(plyr.buttons.speed, 'click', config.listeners.speed, function () {
|
||||||
|
var speedValue = document.querySelector('[data-plyr="speed"]:checked').value;
|
||||||
|
setSpeed(Number(speedValue));
|
||||||
|
});
|
||||||
|
|
||||||
// Seek
|
// Seek
|
||||||
proxy(plyr.buttons.seek, inputEvent, config.listeners.seek, seek);
|
proxy(plyr.buttons.seek, inputEvent, config.listeners.seek, seek);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user