More bug fixes
This commit is contained in:
52
dist/plyr.js
vendored
52
dist/plyr.js
vendored
@ -1704,16 +1704,16 @@ var support = {
|
||||
|
||||
// Check for support
|
||||
// Basic functionality vs full UI
|
||||
check: function check(type, provider, inline) {
|
||||
check: function check(type, provider, playsinline) {
|
||||
var api = false;
|
||||
var ui = false;
|
||||
var browser = utils.getBrowser();
|
||||
var playsInline = browser.isIPhone && inline && support.inline;
|
||||
var canPlayInline = browser.isIPhone && playsinline && support.playsinline;
|
||||
|
||||
switch (provider + ':' + type) {
|
||||
case 'html5:video':
|
||||
api = support.video;
|
||||
ui = api && support.rangeInput && (!browser.isIPhone || playsInline);
|
||||
ui = api && support.rangeInput && (!browser.isIPhone || canPlayInline);
|
||||
break;
|
||||
|
||||
case 'html5:audio':
|
||||
@ -1724,7 +1724,7 @@ var support = {
|
||||
case 'youtube:video':
|
||||
case 'vimeo:video':
|
||||
api = true;
|
||||
ui = support.rangeInput && (!browser.isIPhone || playsInline);
|
||||
ui = support.rangeInput && (!browser.isIPhone || canPlayInline);
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -1752,7 +1752,7 @@ var support = {
|
||||
|
||||
// Inline playback support
|
||||
// https://webkit.org/blog/6784/new-video-policies-for-ios/
|
||||
inline: 'playsInline' in document.createElement('video'),
|
||||
playsinline: 'playsInline' in document.createElement('video'),
|
||||
|
||||
// Check for mime type support against a player instance
|
||||
// Credits: http://diveintohtml5.info/everything.html
|
||||
@ -3485,6 +3485,11 @@ var controls = {
|
||||
list = pane && pane.querySelector('ul');
|
||||
}
|
||||
|
||||
// If there's no list it means it's not been rendered...
|
||||
if (!utils.is.element(list)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Update the label
|
||||
var label = this.elements.settings.tabs[setting].querySelector('.' + this.config.classNames.menu.value);
|
||||
label.innerHTML = controls.getLabel.call(this, setting, value);
|
||||
@ -6040,10 +6045,14 @@ var vimeo = {
|
||||
setAspectRatio: function setAspectRatio(input) {
|
||||
var ratio = utils.is.string(input) ? input.split(':') : this.config.ratio.split(':');
|
||||
var padding = 100 / ratio[0] * ratio[1];
|
||||
var height = 240;
|
||||
var offset = (height - padding) / (height / 50);
|
||||
this.elements.wrapper.style.paddingBottom = padding + '%';
|
||||
this.media.style.transform = 'translateY(-' + offset + '%)';
|
||||
|
||||
if (this.supported.ui) {
|
||||
var height = 240;
|
||||
var offset = (height - padding) / (height / 50);
|
||||
|
||||
this.media.style.transform = 'translateY(-' + offset + '%)';
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
@ -6062,7 +6071,8 @@ var vimeo = {
|
||||
title: false,
|
||||
speed: true,
|
||||
transparent: 0,
|
||||
gesture: 'media'
|
||||
gesture: 'media',
|
||||
playsinline: !this.config.fullscreen.iosNative
|
||||
};
|
||||
var params = utils.buildUrlParams(options);
|
||||
|
||||
@ -6096,6 +6106,11 @@ var vimeo = {
|
||||
player.media.paused = true;
|
||||
player.media.currentTime = 0;
|
||||
|
||||
// Disable native text track rendering
|
||||
if (player.supported.ui) {
|
||||
player.embed.disableTextTrack();
|
||||
}
|
||||
|
||||
// Create a faux HTML5 API using the Vimeo API
|
||||
player.media.play = function () {
|
||||
player.embed.play().then(function () {
|
||||
@ -6465,7 +6480,7 @@ var source = {
|
||||
_this2.provider = !utils.is.empty(input.sources[0].provider) ? input.sources[0].provider : providers.html5;
|
||||
|
||||
// Check for support
|
||||
_this2.supported = support.check(_this2.type, _this2.provider, _this2.config.inline);
|
||||
_this2.supported = support.check(_this2.type, _this2.provider, _this2.config.playsinline);
|
||||
|
||||
// Create new markup
|
||||
switch (_this2.provider + ':' + _this2.type) {
|
||||
@ -6513,7 +6528,7 @@ var source = {
|
||||
if (_this2.config.muted) {
|
||||
_this2.media.setAttribute('muted', '');
|
||||
}
|
||||
if (_this2.config.inline) {
|
||||
if (_this2.config.playsinline) {
|
||||
_this2.media.setAttribute('playsinline', '');
|
||||
}
|
||||
}
|
||||
@ -6717,12 +6732,17 @@ var Plyr = function () {
|
||||
if (truthy.includes(params.autoplay)) {
|
||||
this.config.autoplay = true;
|
||||
}
|
||||
if (truthy.includes(params.playsinline)) {
|
||||
this.config.inline = true;
|
||||
}
|
||||
if (truthy.includes(params.loop)) {
|
||||
this.config.loop.active = true;
|
||||
}
|
||||
|
||||
// TODO: replace fullscreen.iosNative with this playsinline config option
|
||||
// YouTube requires the playsinline in the URL
|
||||
if (this.isYouTube) {
|
||||
this.config.playsinline = truthy.includes(params.playsinline);
|
||||
} else {
|
||||
this.config.playsinline = true;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// <div> with attributes
|
||||
@ -6756,7 +6776,7 @@ var Plyr = function () {
|
||||
this.config.autoplay = true;
|
||||
}
|
||||
if (this.media.hasAttribute('playsinline')) {
|
||||
this.config.inline = true;
|
||||
this.config.playsinline = true;
|
||||
}
|
||||
if (this.media.hasAttribute('muted')) {
|
||||
this.config.muted = true;
|
||||
@ -6773,7 +6793,7 @@ var Plyr = function () {
|
||||
}
|
||||
|
||||
// Check for support again but with type
|
||||
this.supported = support.check(this.type, this.provider, this.config.inline);
|
||||
this.supported = support.check(this.type, this.provider, this.config.playsinline);
|
||||
|
||||
// If no support for even API, bail
|
||||
if (!this.supported.api) {
|
||||
|
Reference in New Issue
Block a user