aboutsummaryrefslogtreecommitdiffstats
path: root/src/js/plyr.js
diff options
context:
space:
mode:
authorSam Potts <sam@selz.com>2017-11-04 21:24:55 +1100
committerGitHub <noreply@github.com>2017-11-04 21:24:55 +1100
commit7ac5b0e18bf2bf275eef06b2622032429ae8823b (patch)
treeaf6bb2c7a406cb8f0daf334771910ed3df8f1781 /src/js/plyr.js
parent5abf7e953535c0fd484d66383f67d7ee7131146c (diff)
parent1b3a6b340d3400cfc5d3f6081e6c133567a5348d (diff)
downloadplyr-7ac5b0e18bf2bf275eef06b2622032429ae8823b.tar.lz
plyr-7ac5b0e18bf2bf275eef06b2622032429ae8823b.tar.xz
plyr-7ac5b0e18bf2bf275eef06b2622032429ae8823b.zip
Merge pull request #678 from StudyTube/use-url-as-input-for-vimeo-player
Add URL as a possible input option to Vimeo player
Diffstat (limited to 'src/js/plyr.js')
-rw-r--r--src/js/plyr.js48
1 files changed, 33 insertions, 15 deletions
diff --git a/src/js/plyr.js b/src/js/plyr.js
index 8a23d239..e625504e 100644
--- a/src/js/plyr.js
+++ b/src/js/plyr.js
@@ -662,10 +662,10 @@
return url.match(regex) ? RegExp.$2 : url;
}
- // Parse Vimeo ID from url
- function _parseVimeoId(url) {
+ // Is this a Vimeo url link?
+ function _isVimeoUrl(url) {
var regex = /^.*(vimeo.com\/|video\/)(\d+).*/;
- return url.match(regex) ? RegExp.$2 : url;
+ return url.match(regex);
}
// Fullscreen API
@@ -1616,6 +1616,7 @@
function _setupEmbed() {
var container = document.createElement("div"),
mediaId,
+ mediaUrl,
id = plyr.type + "-" + Math.floor(Math.random() * 10000);
// Parse IDs from URLs if supplied
@@ -1625,7 +1626,14 @@
break;
case "vimeo":
- mediaId = _parseVimeoId(plyr.embedId);
+ if (_isVimeoUrl(plyr.embedId)) {
+ mediaId = null;
+ mediaUrl = plyr.embedId;
+ } else {
+ mediaId = parseInt(plyr.embedId);
+ mediaUrl = null;
+ }
+
break;
default:
@@ -1690,11 +1698,11 @@
var vimeoTimer = window.setInterval(function() {
if (_is.object(window.Vimeo)) {
window.clearInterval(vimeoTimer);
- _vimeoReady(mediaId, container);
+ _vimeoReady(mediaId, mediaUrl, container);
}
}, 50);
} else {
- _vimeoReady(mediaId, container);
+ _vimeoReady(mediaId, mediaUrl, container);
}
} else if (plyr.type === "soundcloud") {
// TODO: Currently unsupported and undocumented
@@ -1898,17 +1906,27 @@
}
// Vimeo ready
- function _vimeoReady(mediaId, container) {
+ function _vimeoReady(mediaId, mediaUrl, container) {
// Setup instance
// https://github.com/vimeo/player.js
- plyr.embed = new window.Vimeo.Player(container, {
- id: parseInt(mediaId),
- loop: config.loop,
- autoplay: config.autoplay,
- byline: false,
- portrait: false,
- title: false
- });
+
+ var vimeoOptions = {
+ loop: config.loop,
+ autoplay: config.autoplay,
+ byline: false,
+ portrait: false,
+ title: false
+ };
+
+ if (mediaId) {
+ vimeoOptions.id = mediaId;
+ }
+
+ if (mediaUrl) {
+ vimeoOptions.url = mediaUrl;
+ }
+
+ plyr.embed = new window.Vimeo.Player(container, vimeoOptions);
// Create a faux HTML5 API using the Vimeo API
plyr.media.play = function() {