-   Fix YouTube muting after seeking with the progress slider
-   Respect preload="none" when setting quality if the media hasn't been loaded some other way
This commit is contained in:
Sam Potts 2018-06-19 16:57:32 +10:00
parent de7832eb8b
commit 47750b6aad
10 changed files with 56 additions and 51 deletions

View File

@ -1,3 +1,8 @@
# v3.3.17
- Fix YouTube muting after seeking with the progress slider
- Respect preload="none" when setting quality if the media hasn't been loaded some other way
# v3.3.16 # v3.3.16
- Fixed regression relating the play button status (fixes #1048) - Fixed regression relating the play button status (fixes #1048)

46
dist/plyr.js vendored
View File

@ -769,22 +769,17 @@ typeof navigator === "object" && (function (global, factory) {
// Quality // Quality
Object.defineProperty(player.media, 'quality', { Object.defineProperty(player.media, 'quality', {
get: function get$$1() { get: function get() {
// Get sources // Get sources
var sources = html5.getSources.call(player); var sources = html5.getSources.call(player);
var source = sources.find(function (source) {
var _sources$filter = sources.filter(function (source) {
return source.getAttribute('src') === player.source; return source.getAttribute('src') === player.source;
}), });
_sources$filter2 = slicedToArray(_sources$filter, 1),
source = _sources$filter2[0];
// Return size, if match is found // Return size, if match is found
return source && Number(source.getAttribute('size')); return source && Number(source.getAttribute('size'));
}, },
set: function set$$1(input) { set: function set(input) {
// Get sources // Get sources
var sources = html5.getSources.call(player); var sources = html5.getSources.call(player);
@ -799,25 +794,30 @@ typeof navigator === "object" && (function (global, factory) {
} }
// Get current state // Get current state
var currentTime = player.currentTime, var _player$media = player.media,
playing = player.playing; currentTime = _player$media.currentTime,
paused = _player$media.paused,
preload = _player$media.preload,
readyState = _player$media.readyState;
// Set new source // Set new source
player.media.src = source.getAttribute('src'); player.media.src = source.getAttribute('src');
// Restore time // Prevent loading if preload="none" and the current source isn't loaded (#1044)
var onLoadedMetaData = function onLoadedMetaData() { if (preload !== 'none' || readyState) {
player.currentTime = currentTime; // Restore time
}; player.once('loadedmetadata', function () {
player.once('loadedmetadata', onLoadedMetaData); player.currentTime = currentTime;
// Load new source // Resume playing
player.media.load(); if (!paused) {
player.play();
}
});
// Resume playing // Load new source
if (playing) { player.media.load();
player.play();
} }
// Trigger change event // Trigger change event
@ -5822,8 +5822,8 @@ typeof navigator === "object" && (function (global, factory) {
return Number(instance.getCurrentTime()); return Number(instance.getCurrentTime());
}, },
set: function set(time) { set: function set(time) {
// If paused, mute audio preventively (YouTube starts playing on seek if the video hasn't been played yet). // If paused and never played, mute audio preventively (YouTube starts playing on seek if the video hasn't been played yet).
if (player.paused) { if (player.paused && !player.embed.hasPlayed) {
player.embed.mute(); player.embed.mute();
} }

2
dist/plyr.js.map vendored

File diff suppressed because one or more lines are too long

2
dist/plyr.min.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -6158,16 +6158,11 @@ typeof navigator === "object" && (function (global, factory) {
get: function get() { get: function get() {
// Get sources // Get sources
var sources = html5.getSources.call(player); var sources = html5.getSources.call(player);
var source = sources.find(function (source) {
var _sources$filter = sources.filter(function (source) {
return source.getAttribute('src') === player.source; return source.getAttribute('src') === player.source;
}), });
_sources$filter2 = slicedToArray(_sources$filter, 1),
source = _sources$filter2[0];
// Return size, if match is found // Return size, if match is found
return source && Number(source.getAttribute('size')); return source && Number(source.getAttribute('size'));
}, },
set: function set(input) { set: function set(input) {
@ -6185,25 +6180,30 @@ typeof navigator === "object" && (function (global, factory) {
} }
// Get current state // Get current state
var currentTime = player.currentTime, var _player$media = player.media,
playing = player.playing; currentTime = _player$media.currentTime,
paused = _player$media.paused,
preload = _player$media.preload,
readyState = _player$media.readyState;
// Set new source // Set new source
player.media.src = source.getAttribute('src'); player.media.src = source.getAttribute('src');
// Restore time // Prevent loading if preload="none" and the current source isn't loaded (#1044)
var onLoadedMetaData = function onLoadedMetaData() { if (preload !== 'none' || readyState) {
player.currentTime = currentTime; // Restore time
}; player.once('loadedmetadata', function () {
player.once('loadedmetadata', onLoadedMetaData); player.currentTime = currentTime;
// Load new source // Resume playing
player.media.load(); if (!paused) {
player.play();
}
});
// Resume playing // Load new source
if (playing) { player.media.load();
player.play();
} }
// Trigger change event // Trigger change event
@ -11202,8 +11202,8 @@ typeof navigator === "object" && (function (global, factory) {
return Number(instance.getCurrentTime()); return Number(instance.getCurrentTime());
}, },
set: function set(time) { set: function set(time) {
// If paused, mute audio preventively (YouTube starts playing on seek if the video hasn't been played yet). // If paused and never played, mute audio preventively (YouTube starts playing on seek if the video hasn't been played yet).
if (player.paused) { if (player.paused && !player.embed.hasPlayed) {
player.embed.mute(); player.embed.mute();
} }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1,6 @@
{ {
"name": "plyr", "name": "plyr",
"version": "3.3.16", "version": "3.3.17",
"description": "A simple, accessible and customizable HTML5, YouTube and Vimeo media player", "description": "A simple, accessible and customizable HTML5, YouTube and Vimeo media player",
"homepage": "https://plyr.io", "homepage": "https://plyr.io",
"main": "./dist/plyr.js", "main": "./dist/plyr.js",