diff --git a/src/js/controls.js b/src/js/controls.js index 411b9975d..9c5876c8f 100644 --- a/src/js/controls.js +++ b/src/js/controls.js @@ -914,7 +914,7 @@ vjs.MuteToggle.prototype.update = function(){ vjs.PosterImage = function(player, options){ goog.base(this, player, options); - if (!this.player_.options_['poster']) { + if (!player.poster()) { this.hide(); } @@ -931,8 +931,8 @@ vjs.PosterImage.prototype.createEl = function(){ }); // src throws errors if no poster was defined. - if (this.player_.options_['poster']) { - el.src = this.player_.options_['poster']; + if (this.player_.poster()) { + el.src = this.player_.poster(); } return el; }; diff --git a/src/js/media.html5.js b/src/js/media.html5.js index b3934ec19..1e7dfce14 100644 --- a/src/js/media.html5.js +++ b/src/js/media.html5.js @@ -194,7 +194,6 @@ vjs.Html5.prototype.ended = function(){ return this.el_.ended; }; // playbackRate: function(){ return this.el_.playbackRate; }, // mediaGroup: function(){ return this.el_.mediaGroup; }, // controller: function(){ return this.el_.controller; }, -vjs.Html5.prototype.controls = function(){ return this.player_.options_['controls']; }; vjs.Html5.prototype.defaultMuted = function(){ return this.el_.defaultMuted; }; /* HTML5 Support Testing ---------------------------------------------------- */ diff --git a/src/js/media.js b/src/js/media.js index de705b457..3864f9bfa 100644 --- a/src/js/media.js +++ b/src/js/media.js @@ -29,7 +29,7 @@ goog.inherits(vjs.MediaTechController, vjs.Component); * Handle a click on the media element. By default will play the media. */ vjs.MediaTechController.prototype.onClick = function(){ - if (this.player_.options_['controls']) { + if (this.player_.controls()) { if (this.player_.paused()) { this.player_.play(); } else { diff --git a/src/js/player.js b/src/js/player.js index 0f776de27..3ed2fcd25 100644 --- a/src/js/player.js +++ b/src/js/player.js @@ -30,6 +30,11 @@ vjs.Player = function(tag, options, ready){ // Inits and embeds any child components in opts vjs.Component.call(this, this, opts, ready); + // Set poster + this.poster_ = this.options_['poster']; + // Set controls + this.controls_ = this.options_['controls']; + // Firstplay event implimentation. Not sold on the event yet. // Could probably just check currentTime==0? this.one('play', function(e){ @@ -809,8 +814,44 @@ vjs.Player.prototype.loop = function(value){ return this.techGet('loop'); }; -vjs.Player.prototype.controls = function(){ return this.options_['controls']; }; -vjs.Player.prototype.poster = function(){ return this.techGet('poster'); }; +/** + * The url of the poster image source. + * @type {String} + * @private + */ +vjs.Player.prototype.poster_; + +/** + * Get or set the poster image source url. + * @param {String} src Poster image source URL + * @return {String=} Poster image source URL or null + */ +vjs.Player.prototype.poster = function(src){ + if (src !== undefined) { + this.poster_ = src; + } + return this.poster_; +}; + +/** + * Whether or not the controls are showing + * @type {Boolean} + * @private + */ +vjs.Player.prototype.controls_; + +/** + * Get or set whether or not the controls are showing. + * @param {Boolean} controls Set controls to showing or not + * @return {Boolean} Controls are showing + */ +vjs.Player.prototype.controls = function(controls){ + if (controls !== undefined) { + this.controls_ = controls; + } + return this.controls_; +}; + vjs.Player.prototype.error = function(){ return this.techGet('error'); }; vjs.Player.prototype.ended = function(){ return this.techGet('ended'); };