aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSam Potts <sam@potts.es>2018-06-19 11:48:44 +1000
committerGitHub <noreply@github.com>2018-06-19 11:48:44 +1000
commit22cdec9d3885f13087d0a0e7e2e189e436ef0161 (patch)
tree0a554a5f69134f1ec232b85c541a9aa9520b0cc9 /src
parentc45f428f616aeff04deb25515a1bf97224294a24 (diff)
parentd72e502107b24a629572f6dcac3fdc4c95ea9001 (diff)
downloadplyr-22cdec9d3885f13087d0a0e7e2e189e436ef0161.tar.lz
plyr-22cdec9d3885f13087d0a0e7e2e189e436ef0161.tar.xz
plyr-22cdec9d3885f13087d0a0e7e2e189e436ef0161.zip
Merge pull request #1051 from friday/quality-2
Respect preload="none" when setting quality if the media hasn't been loaded some other way
Diffstat (limited to 'src')
-rw-r--r--src/js/html5.js26
1 files changed, 14 insertions, 12 deletions
diff --git a/src/js/html5.js b/src/js/html5.js
index 6aa96f4c..0876211a 100644
--- a/src/js/html5.js
+++ b/src/js/html5.js
@@ -39,7 +39,7 @@ const html5 = {
get() {
// Get sources
const sources = html5.getSources.call(player);
- const [source] = sources.filter(source => source.getAttribute('src') === player.source);
+ const source = sources.find(source => source.getAttribute('src') === player.source);
// Return size, if match is found
return source && Number(source.getAttribute('size'));
@@ -57,23 +57,25 @@ const html5 = {
}
// Get current state
- const { currentTime, playing } = player;
+ const { currentTime, paused, preload, readyState } = player.media;
// Set new source
player.media.src = source.getAttribute('src');
- // Restore time
- const onLoadedMetaData = () => {
- player.currentTime = currentTime;
- };
- player.once('loadedmetadata', onLoadedMetaData);
+ // Prevent loading if preload="none" and the current source isn't loaded (#1044)
+ if (preload !== 'none' || readyState) {
+ // Restore time
+ player.once('loadedmetadata', () => {
+ player.currentTime = currentTime;
- // Load new source
- player.media.load();
+ // Resume playing
+ if (!paused) {
+ player.play();
+ }
+ });
- // Resume playing
- if (playing) {
- player.play();
+ // Load new source
+ player.media.load();
}
// Trigger change event