123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273 |
- goog.provide('goog.ui.media.Vimeo');
- goog.provide('goog.ui.media.VimeoModel');
- goog.require('goog.html.uncheckedconversions');
- goog.require('goog.string');
- goog.require('goog.ui.media.FlashObject');
- goog.require('goog.ui.media.Media');
- goog.require('goog.ui.media.MediaModel');
- goog.require('goog.ui.media.MediaRenderer');
- goog.ui.media.Vimeo = function() {
- goog.ui.media.MediaRenderer.call(this);
- };
- goog.inherits(goog.ui.media.Vimeo, goog.ui.media.MediaRenderer);
- goog.addSingletonGetter(goog.ui.media.Vimeo);
- goog.ui.media.Vimeo.CSS_CLASS = goog.getCssName('goog-ui-media-vimeo');
- goog.ui.media.Vimeo.newControl = function(dataModel, opt_domHelper) {
- var control = new goog.ui.media.Media(
- dataModel, goog.ui.media.Vimeo.getInstance(), opt_domHelper);
-
-
-
- control.setSelected(true);
- return control;
- };
- goog.ui.media.Vimeo.prototype.createDom = function(c) {
- var control = (c);
- var div = goog.ui.media.Vimeo.superClass_.createDom.call(this, control);
- var dataModel =
- (control.getDataModel());
- var flash = new goog.ui.media.FlashObject(
- dataModel.getPlayer().getTrustedResourceUrl(), control.getDomHelper());
- flash.render(div);
- return div;
- };
- goog.ui.media.Vimeo.prototype.getCssClass = function() {
- return goog.ui.media.Vimeo.CSS_CLASS;
- };
- goog.ui.media.VimeoModel = function(
- videoId, opt_caption, opt_description, opt_autoplay) {
- goog.ui.media.MediaModel.call(
- this, goog.ui.media.VimeoModel.buildUrl(videoId), opt_caption,
- opt_description, goog.ui.media.MediaModel.MimeType.FLASH);
-
- this.videoId_ = videoId;
- this.setPlayer(
- new goog.ui.media.MediaModel.Player(
- goog.ui.media.VimeoModel.buildFlashUrl(videoId, opt_autoplay)));
- };
- goog.inherits(goog.ui.media.VimeoModel, goog.ui.media.MediaModel);
- goog.ui.media.VimeoModel.MATCHER_ =
- /https?:\/\/(?:www\.)?vimeo\.com\/(?:hd#)?([0-9]+)/i;
- goog.ui.media.VimeoModel.newInstance = function(
- vimeoUrl, opt_caption, opt_description, opt_autoplay) {
- if (goog.ui.media.VimeoModel.MATCHER_.test(vimeoUrl)) {
- var data = goog.ui.media.VimeoModel.MATCHER_.exec(vimeoUrl);
- return new goog.ui.media.VimeoModel(
- data[1], opt_caption, opt_description, opt_autoplay);
- }
- throw Error('failed to parse vimeo url: ' + vimeoUrl);
- };
- goog.ui.media.VimeoModel.buildUrl = function(videoId) {
- return 'http://vimeo.com/' + goog.string.urlEncode(videoId);
- };
- goog.ui.media.VimeoModel.buildFlashUrl = function(videoId, opt_autoplay) {
- var autoplay = opt_autoplay ? '&autoplay=1' : '';
- return goog.html.uncheckedconversions.
- trustedResourceUrlFromStringKnownToSatisfyTypeContract(
- goog.string.Const.from('Fixed domain, encoded parameters.'),
- 'http://vimeo.com/moogaloop.swf?clip_id=' +
- goog.string.urlEncode(videoId) +
- '&server=vimeo.com&show_title=1&show_byline=1&' +
- 'show_portrait=0color=&fullscreen=1' + autoplay);
- };
- goog.ui.media.VimeoModel.prototype.getVideoId = function() {
- return this.videoId_;
- };
|