Video_wev8.js 1.67 KB
define([ 'mUtil', "Component" ,"docHelper"], function(mUtil, Component,docHelper) {
	var Video = function(options) {

		Component.super(this, options);

		this.type = "Video";
		this.tpl = this.type + "_html";

		var vm = this.viewModel = {
			autoplay : true,
			loop : true,
			width : "100%"
		};


		this.mounted = function () {
			var url = vm.url || "";
			
			var $video  = $("video", this.$el);
			var reloadVideo = function (url) {
				$video.attr('src',url);
			};
			var pathPrefix =  '/weaver/weaver.file.FileDownload?fileid=';
			if(!isNaN(url)){//如果路径传的是docid,则转化为文件路径
				docHelper.convertDocidsToImageIds(url ,function (fileids){
					if(fileids.length) url = pathPrefix + fileids[fileids.length -1];
					if (url.indexOf(pathPrefix) == 0 && mUtil.isIOS() && mUtil.runtime.isEmobile()) {
						_getProtocolIP(url,reloadVideo);
					}else{
						reloadVideo(url);
					}
				});
			}else{
				//对于ios Emobile中视频播放不通过emobile服务做跳转
				if (url.indexOf(pathPrefix) == 0 && mUtil.isIOS() && mUtil.runtime.isEmobile()) {
					_getProtocolIP(url,reloadVideo);
				}
			}
		};

		this.pauseVideo = function() { //暂停播放
			this.$el.find("video")[0].pause();
		};


		//===========================   辅助方法 ==================

		var _getProtocolIP = function (url,callback) {
			var actionUrl = mUtil.getActionUrl("service.MobileCommon", {action : "getRequestURL"});
			var protocolip = '';
			mUtil.ajax(actionUrl, null, function(result) {
				if (result.status == 1) protocolip = result.ipaddr;
				callback(protocolip+url);
			}, {type : "GET",dataType : "json",async : true});
		};
	};

	return Component.init(Video);
});