ckplayer插件播放m3u8视频

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wlx1991/article/details/43269313
var flashvars = {
	f: 'ckplayer/m3u8.swf', 		//使用swf向播放器发送视频地址进行播放
	a: 'video/m.m3u8',		//m3u8文件
	c: 0,		//调用 ckplayer.js 配置播放器
	p: 1,		//自动播放视频
	s: 4,		//flash插件形式发送视频流地址给播放器进行播放
	lv: 0,		//注意,如果是直播,需设置lv:1
	loaded: 'loadedHandler'
}

昨天,要将下载的 m3u8 文件改成 “m.m3u8" 这种格式,再将 a 设置成 video/m.m3u8 ,才能播放视频,今天却播放不了了,而且不断报错,如下图:



var flashvars = {
	f: 'ckplayer/m3u8.swf', 		//使用swf向播放器发送视频地址进行播放
	a: 'video/m3u8',		//m3u8文件
	c: 0,		//调用 ckplayer.js 配置播放器
	p: 1,		//自动播放视频
	s: 4,		//flash插件形式发送视频流地址给播放器进行播放
	lv: 0,		//注意,如果是直播,需设置lv:1
	loaded: 'loadedHandler'
}

然后,我将 m.m3u8 格式改回成 m3u8,再将a设置成video/m3u8,视频反而可以播放了。浏览器控制台显示如下图:





无语了,下午,m.m3u8格式又可以播放视频了……

扫描二维码关注公众号,回复: 3295014 查看本文章



var flashvars = {
	f: 'ckplayer/m3u8.swf', 		//使用swf向播放器发送视频地址进行播放
	a: encodeURIComponent(decodeURIComponent('http://pl.youku.com/playlist/m3u8?ts=1422522760&keyframe=0&vid=XODc1NzMyNTA0&type=mp4&ep=cSaWGEyPVc4F4CDYgT8bNS60ciNbXJZ1gkyE%2F5gfScVAOejQmjbUxQ%3D%3D&sid=342252305537912b2f6dd&token=3852&ctype=12&ev=1&oip=3663591661')),	//m3u8文件
	c: 0,		//调用 ckplayer.js 配置播放器
	p: 1,		//自动播放视频
	s: 4,		//flash插件形式发送视频流地址给播放器进行播放
	lv: 0,		//注意,如果是直播,需设置lv:1
	loaded: 'loadedHandler'
}
刚刚解决了外部链接播放m3u8视频的问题。

例如:我们得到了一个外部m3u8链接1

http://pl.youku.com/playlist/m3u8?ts=1422522760&keyframe=0&vid=XODc1NzMyNTA0&type=mp4&ep=cSaWGEyPVc4F4CDYgT8bNS60ciNbXJZ1gkyE%2F5gfScVAOejQmjbUxQ%3D%3D&sid=342252305537912b2f6dd&token=3852&ctype=12&ev=1&oip=3663591661
这个链接中有一部分被进行了URI编码

首先,我们要用 decodeURIComponent() 方法对其解码,得到如下链接2

http://pl.youku.com/playlist/m3u8?ts=1422522760&keyframe=0&vid=XODc1NzMyNTA0&type=mp4&ep=cSaWGEyPVc4F4CDYgT8bNS60ciNbXJZ1gkyE/5gfScVAOejQmjbUxQ==&sid=342252305537912b2f6dd&token=3852&ctype=12&ev=1&oip=3663591661

然后,再用 encodeURIComponent() 方法对上面的链接进行 URI 编码,得到如下链接3

http%3A%2F%2Fpl.youku.com%2Fplaylist%2Fm3u8%3Fts%3D1422522760%26keyframe%3D0%26vid%3DXODc1NzMyNTA0%26type%3Dmp4%26ep%3DcSaWGEyPVc4F4CDYgT8bNS60ciNbXJZ1gkyE%2F5gfScVAOejQmjbUxQ%3D%3D%26sid%3D342252305537912b2f6dd%26token%3D3852%26ctype%3D12%26ev%3D1%26oip%3D3663591661


上面的链接就可以用在 ckplayer 的代码里了。


这里需要注意的是,不能直接对链接1进行URI编码,必须先解码再编码。

因为最开始得到的链接可能是部分变编码了的,如果对这种链接直接编码,得到的链接,和先解码再编码得到的链接是不一样的。

例如,我们直接对链接1编码,得到的链接4:

http%3A%2F%2Fpl.youku.com%2Fplaylist%2Fm3u8%3Fts%3D1422522760%26keyframe%3D0%26vid%3DXODc1NzMyNTA0%26type%3Dmp4%26ep%3DcSaWGEyPVc4F4CDYgT8bNS60ciNbXJZ1gkyE%252F5gfScVAOejQmjbUxQ%253D%253D%26sid%3D342252305537912b2f6dd%26token%3D3852%26ctype%3D12%26ev%3D1%26oip%3D3663591661

对比一下,链接4和链接3是不一样的,encodeURIComponent() 对  百分号%  再次进行了编码。



我已经很久没接触这方面的内容了,相关的知识点早已忘记,所以各位的问题都回答不了了。2016-12-14

猜你喜欢

转载自blog.csdn.net/wlx1991/article/details/43269313