From 533bd173b2d011a496a6d486a699296425ead7a7 Mon Sep 17 00:00:00 2001 From: Guru Prasad Srinivasa Date: Wed, 13 Jan 2016 14:58:01 -0500 Subject: [PATCH] Updated API function 'plyr.source()' to get media source Currently, there is no simple way of acquiring media source. This commit updates the 'source' API function to allow developers to acquire the video source regardless of whether the video is a youtube-embed or HTML5 video. Future embeds just need their respective URL fetching code added to this common function. --- readme.md | 10 +++++++--- src/js/plyr.js | 25 +++++++++++++++++++++++-- 2 files changed, 30 insertions(+), 5 deletions(-) diff --git a/readme.md b/readme.md index e6878202..ce647687 100644 --- a/readme.md +++ b/readme.md @@ -356,10 +356,10 @@ Here's a list of the methods supported: source(...) - String or Array + String or Array or (null|undefined) - Set the media source. -

+ Get/Set the media source. +

string
.source("/path/to/video.mp4")
This will set the src attribute on the video or audio element. @@ -370,6 +370,9 @@ Here's a list of the methods supported:

YouTube
Currently this API method only accepts a YouTube ID when used with a YouTube player. I will add URL support soon, along with being able to swap between types (e.g. YouTube to Audio or Video and vice versa.) +

+ null or undefined
+ Returns the current media source. Works for both native videos and embeds. @@ -504,3 +507,4 @@ Also these links helped created Plyr: ## Copyright and License [The MIT license](license.md). + diff --git a/src/js/plyr.js b/src/js/plyr.js index 44f17290..638deaad 100644 --- a/src/js/plyr.js +++ b/src/js/plyr.js @@ -1716,6 +1716,27 @@ } } + // Add common function to retrieve media source + function _source(args) { + // If not null or undefined, parse it + if(args !== null && args !== undefined) { + return _parseSource(args); + } + + // Return the current source + + // The following lines inside if/else may fail. + // Not sure whether to bubble exception up or + // return a default value or log to console. + if(player.type === "youtube") { + return player.embed.getVideoUrl(); + } + else { + return player.media.currentSrc; + } + } + + // Update poster function _updatePoster(source) { if (player.type === 'video') { @@ -1997,7 +2018,7 @@ rewind: _rewind, forward: _forward, seek: _seek, - source: _parseSource, + source: _source, poster: _updatePoster, setVolume: _setVolume, togglePlay: _togglePlay, @@ -2088,4 +2109,4 @@ return players; }; -}(this.plyr = this.plyr || {})); \ No newline at end of file +}(this.plyr = this.plyr || {}));