JWPlayer GrindPlaer CuPlayer播放器使用心得

流过昼夜 提交于 2020-04-07 05:32:51

项目中有使用rtmp进行直播,所以需要支持rtmp协议的视频播放器,用于前端播放直播流。

我先后用过GrindPlayer JWPlayer CuPlayer 

GrindPlayer是无意中,配置nginx-rtmp服务器(windows版),发现的自带的一款浏览器,延迟较低,但清晰度不够,相对于其他的浏览器来说,它的显示效果不够平滑。感觉有锯齿。

GrindPlayer 

1.引入相关的资源文件和js文件

2.使用播放器

var pqs = new ParsedQueryString();
	var parameterNames = pqs.params(false);
	 
	var parameters = {
	    src:config.src,
		autoPlay: "true",
		verbose: true,
		controlBarAutoHide: "true",
		controlBarPosition: "bottom",
		poster: "images/poster.png",
		javascriptCallbackFunction: "jsbridge",
		plugin_hls: basepath+"/view/source/player/flashlsOSMF.swf",
		hls_minbufferlength: -1,
		hls_maxbufferlength: 30,
		hls_lowbufferlength: 3,
		hls_seekmode: "KEYFRAME",
		hls_startfromlevel: -1,
		hls_seekfromlevel: -1,
		hls_live_flushurlcache: false,
		hls_info: true,
		hls_debug: false,
		hls_debug2: false,
		hls_warn: true,
		hls_error: true,
		hls_fragmentloadmaxretry : -1,
		hls_manifestloadmaxretry : -1,
		hls_capleveltostage : false,
		hls_maxlevelcappingmode : "downscale"
	};

	for (var i = 0; i < parameterNames.length; i++) {
		var parameterName = parameterNames[i];
		parameters[parameterName] = pqs.param(parameterName) ||
		parameters[parameterName];
	}

	var wmodeValue = "direct";
	var wmodeOptions = ["direct", "opaque", "transparent", "window"];
	if (parameters.hasOwnProperty("wmode"))
	{
		if (wmodeOptions.indexOf(parameters.wmode) >= 0)
		{
			wmodeValue = parameters.wmode;
		}
		delete parameters.wmode;
	}

	// Embed the player SWF:
	swfobject.embedSWF(
			basepath+"/view/source/player/GrindPlayer.swf"
		, id
		, config.width||500
		, config.height||480
		, "10.1.0"
		, "expressInstall.swf"
		, parameters
		, {
			allowFullScreen: "true",
			wmode: wmodeValue
		}
		, {
			name: "GrindPlayer"
		}
	);

代码比较繁琐

JWPlayer

1.引入相关资源文件

2.代码:

 jwplayer(id).setup({
	    	//flashplayer: "${path}/components/jwplayer/jwplayer.flash.swf",  
	        sources:[{file:config.src}] ,
	        
	        primary:"flash",
	        width: config.width||500,  
	        height: config.height||350,  
	        dock: false,
	        autostart:true,
	        rtmp:{
	        	bufferlength:0.5
	        }
	    });

CuPlayer 

1.引入资源文件

2.代码:

var w=config.width.replace("px","");
	var h=config.height.replace("px","");
	var so = new SWFObject(basepath+"/view/source/player/cuplayer/player.swf","play_"+id,w,h,"9","#000000");
	so.addParam("allowfullscreen","true");
	so.addParam("allowscriptaccess","always");
	so.addParam("wmode","opaque");
	so.addParam("quality","high");
	so.addParam("salign","lt");
	//播放器设置文件-----------------------------
	//so.addVariable("JcScpFile",basepath+"/view/source/player/cuplayer/CuSunV2set.xml");
	so.addVariable("JcScpFile",basepath+"/system/playerParam");
	so.addVariable("JcScpShowRightmenu","no");
	//视频文件及略缩图--------------------------
	so.addVariable("JcScpServer",config.rtmpserver);
	so.addVariable("JcScpVideoPath",config.rtmpid); 
	so.addVariable("JcScpImg",basepath+"/view/source/player/images/startpic.jpg"); 
	//-前置Flash广告-----------------------------
	so.addVariable("ShowJcScpAFront","no");
	 
	//-视频广告参数-----------------------------
	so.addVariable("ShowJcScpAVideo","no");
 
	//-暂停广告参数-----------------------------
	so.addVariable("ShowJcScpAPause","no");
	 
	//-角标广告参数-----------------------------
	so.addVariable("ShowJcScpACorner","no");
	 
	//-后置广告参数----------------------------
	so.addVariable("ShowJcScpAEnd","no");
	 
	//-----------------------------------------
	so.addVariable("JcScpSharetitle","聚通播放器"); 
	so.write(id);

 

注意事项: 使用CuPlayer时,有个xml配置,而java开发很多都是xml配置文件,如果开放xml静态资源的话,可能会导致项目登陆或是其他一些莫名其妙的问题。 于是我将xml的静态化配置取消,做成了动态加载xml的方式。效果很不错。

CuPlayer的前端效果很不错,有延迟的时候,会有loading而且还有百分比进度,很人性化 ,值得注意的是,它能够自定义各种参数,比如不需要右侧按钮(开灯、分享等),只需要设置JcScpShowRightmenu = "no",就可以取消,还可以自定logo   只是目前还不知道能不能把CuPlayer的样式去掉。

JWPlayer的问题,在于缓存,有时候虽然在推流,但播放器卡在那里,等待一段时间,才播卡顿的时间的内容,而不是实时的内容。另外有时候loading不会消失。 手机端无法加载播放器

尝试过videojs ,效果也很不错,不知道是什么原因,画面只有大约八分之一,如果哪位大牛知道,希望能给点建议,我也查过资料,好像是videojs对chrome支持的问题。但最终没能找到解决方法

也试过ckplayer ,发现根本没办法像别人说的那样正常使用,浏览器是chrome浏览器,可能还是存在兼容问题吧。 

最终选择了CuPlayer ,效果不错,大家也都比较认可。

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!