桂林网站优化公司,网站跟客户端推广怎么做,火星培训机构收费明细,网站开发常用框架在前端播放视频#xff0c;现在用html5的video标签已经是一个不错的选择#xff0c;不过有时候还是需要用StrobeMediaPlayback、JWPlayer这一类的flash播放器#xff0c;JWPlayer的免费版本带有一个水印#xff0c;并且有一些引用的js代码因为某些网络问题不容易下载到现在用html5的video标签已经是一个不错的选择不过有时候还是需要用StrobeMediaPlayback、JWPlayer这一类的flash播放器JWPlayer的免费版本带有一个水印并且有一些引用的js代码因为某些网络问题不容易下载到从而导致加载很慢。 以前我也从网上找到过一些破解版不过这两个问题解决的都不是很好本文就通过逐步修改JWPlayer的代码来解决这些问题。 JWPlayer是开源的但是根据功能的不同有一些是收费的。它的官方网站是 http://www.jwplayer.com/ 。 下面是它的价格表 0元非商用 核心播放器有水印logo支持HTML5和Flash永久免费。 149美元/年 基础商业版包括皮肤、商标、分享和基础分析统计。 299美元/年 媒体版为基于视频的站点使用包括皮肤、商标、分享、Apple HLS streaming、视频推荐、高级分析。 定制 企业版包括视频广告商业化、整合视频分享、内置的google电视棒、在产品中转售JWPlayer。 使用免费版默认右上角会有logo 使用官方版本主要存在两个问题第一是有水印第二是它的js会去请求另外俩个js文件因为GFW的关系有时候它的尝试加载会影响视频的播放 刚用的时候在网上找了一个去水印的版本但是每次在播放的时候右上角总是有一个加载失败的图我也没有再去找干脆自己在官方版本上修改。 我下载的官方的6.12版。 1. 水印问题 根据chrome控制台上的网络请求记录可以找到这个logo是请求了这个资源略长我也都粘在这儿了 data:image/png;base64,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 对于这个URL我只能说是叹为观止。这个请求过程是在jwplayer.html5.js里面触发在这个js文件里可以找到这个URL我在它请求的其他图片里面找了一个透明的图片替换到这里就可以了也就是说我并没有尝试去删这个图而是换了一张透明的 改为 a.defaults.filedata:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAgCAYAAAA1zNleAAAAD0lEQVQoU2NgGAWjADcAAAIgAAEeEYatAAAAAElFTkSuQmCC 2. 对p.jwpcdn.com的网络请求 JWPlayer在jwplayer.js中会请求 http://p.jwpcdn.com/6/12/jwpsrv.js 在jwpsrv.js中会请求 http://p.jwpcdn.com/6/jwpsrv_frq.js 而这个jwpcdn有时候是不能访问的但是浏览器会一直尝试访问在某一次能访问的时候我先把这两个文件下载到本地其实不下载也可以这两个文件好像主要是统计分析把p.jwpcdn.com换成一个能够访问的地址就可以这样能够迅速得到404回应不会一直在等首先在jwplayer.js中修改在这个文件中搜索p.jwpcdn.com可以找到 b.repofunction(){var ahttp://p.jwpcdn.com/f.version.split(/\W/).splice(0,2).join(/)/; 针对6.12版就会得到http://p.jwpcdn.com/6/12/ 这个路径所以我把它改为jwplayer.js同路径下的jwpsrv.js 修改为 b.repofunction(){
var jsdocument.scripts;var a./;for(var ijs.length-1;i0;i--){if(js[i].src.indexOf(jwplayer.js)-1){ajs[i].src.substring(0,js[i].src.lastIndexOf(/)1);}}; 根据这段代码也能看出来这要求当前的js文件必须叫做jwplayer.js不能改名。 同样的方法在jwpsrv.js中搜索p.jwpcdn.com可以找到 Hhttp(https:document.location.protocol?s://ssl.:://)p.jwpcdn.com/6/jwpsrv_frq.js 同样的方法在这些变量定义的最前面加上这段代码以防变量名冲突我把a改成了path var jsdocument.scripts;var path./;for(var ijs.length-1;i0;i--){if(js[i].src.indexOf(jwplayer.js)-1){pathjs[i].src.substring(0,js[i].src.lastIndexOf(/)1);}}; 之后把H变量的定义修改为 Hpath/jwpsrv_frq.js 修改之后的jwplayer 源码下载 。 JWPlayer的API http://support.jwplayer.com/customer/portal/topics/564475-javascript-api/articles 这里有一系列文档和Demo下面是详细的API列表 http://support.jwplayer.com/customer/portal/articles/1413089-javascript-api-reference 。 举几个例子便于理解调用方式 var player jwplayer(container).setup(); 获取视频的时长 player.getDuration(); 获取视频状态 player.getState(); 定位到第几秒 player.seek(second); 视频播放 player.play(true); 视频暂停 player.play(false); 视频停止 player.stop(); 为视频添加时间当时间变化时回调 player.onTime(function(e){......}); 这里有一个未解决的问题事件添加后我没有找到清除的方法如果重新设置一个空的onTime也只是叠加不替换原有的不知道后续版本会不会修复。 对于前端的Flash播放器还有一个StrobeMediaPlayback可以使用这里也顺带提一句这是一个纯开源的实现不像JWPlayer一样默认有水印界面也相对比较好看由Adobe支持。它的下载地址在http://sourceforge.net/projects/smp.adobe/files/最新的1.6.328已经是好多年未曾更新了。解压之后可以在对应的Flash版本目录下找到大量的demo。但是我却没有找到它的官方文档。有一个没有太大用处的文档可以参考http://sourceforge.net/adobe/smp/wiki/JavaScript%20API/。 转载于:https://www.cnblogs.com/barrywxx/p/JwPlayer.html