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 || {}));