【视频播放】Jplayer视频播放器的使用 分类: Jplayer ...

如果你正在寻找一个网页上播放视频的插件,或者你原先网页上用的视频插件被墙了(比如jwplayer),那么就来看看下面的介绍吧

当楼主得知原先用的视频插件jwplayer所访问到的一个cdn地址失效了,并且通过网上的方法并不能修复jwplayer,使它能正常播放视频,楼主的内心是崩溃的。

但是当把Jplayer调试完成后,终于找到了一款好的替代的插件。


1、首先Jplayer的官网在这里:

http://www.jplayer.org/


2、其次,对于楼主而言,看一个视频插件能不能用,有以下几步:

(1)用不同的浏览器打开官网,通常官网首页都一个展示用的例子,如果展示的例子在常用浏览器里无法播放,那么就不继续研究这个播放器的使用方法了

(2)将官网demo下载到本地,把例子中的视频文件替换成本地自己的文件(比如某个MP4文件),在各种浏览器里面打开demo,如果本地的静态视频在常用浏览器里无法播放,那么也就到此结束

(3)将步骤(2)中的文件替换成通过动态读取方式,比如php读取本地某个文件的流,在各种浏览器里面打开demo,如果本地的静态视频在常用浏览器里无法播放,那么也就到此结束

(4)将步骤(3)中的php读取本地某个文件的流,替换成php以curl方式读取文件流,然后测试在各浏览器中的效果


P.S. 如果只是播放静态文件,那么可以在步骤(2)就得出结论了


3、Jplayer根据2中的步骤,(2)中,除了ie7、8无法支持外,(3)和(4)的具体实现如下:


如果使用以下demo,需下载资源包一起使用

http://download.csdn.net/detail/snow_finland/8692243


前端部分:





Demo











步骤(3)中php读取本地静态文件示例:(需要在前端文件同级建有video文件夹,并且里面放一个1.mp4文件)


 $end) ? $end : $c_end;
		if ($c_start > $c_end || $c_start > $size - 1 || $c_end >= $size){
			header('HTTP/1.1 416 Requested Range Not Satisfiable');
			header("Content-Range: bytes $start-$end/$size");
			exit;
		}

		$start  = $c_start;
		$end    = $c_end;
		$length = $end - $start + 1;
		fseek($fp, $start);
		header('HTTP/1.1 206 Partial Content');
	}
	
	header("Content-Range: bytes $start-$end/$size");
	header("Content-Length: $length");

	$buffer = 1024 * 8;
	while(!feof($fp) && ($p = ftell($fp)) <= $end){
		if ($p + $buffer > $end){
			$buffer = $end - $p + 1;
		}

		set_time_limit(0);
		echo fread($fp, $buffer);
		flush(); // Free up memory. Otherwise large files will trigger PHP's memory limit.
	}

	fclose($fp);
}
?>



首先判断头信息中是否有$_SERVER['HTTP_RANGE'],

如果有则按照分段读取的方式,根据头信息中请求的范围返回文件的数据,(需要在返回的头信息中增加范围,长度,文件流类型以及206协议)

否则就将整个文件流返回(需要在返回的头信息中增加文件流类型)






步骤(4)中php以curl方式读取外部接口的文件流示例:




首先根据文件的id获取文件的size(之后返回文件流信息的时候需要在头信息中增加文件大小这一参数)


其次和步骤(3)中一样,判断头信息中是否有$_SERVER['HTTP_RANGE'],


如果有则按照分段读取的方式,根据头信息中请求的范围返回文件的数据,

(需要在返回的头信息中增加范围,长度,文件流类型以及206协议;

如果外部接口支持分段读取,可以按照demo中直接分段请求,

否则需要用全部读取的方式,然后通过php的切分字符串方式,获取需要范围的文件流,使用这种方法会浪费流量,增加请求返回的时间)


否则就将整个文件流返回(需要在返回的头信息中增加文件流类型,demo中的头信息为不缓存的方式)


版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://www.cnblogs.com/snow-finland/p/4690156.html

你可能感兴趣的:(【视频播放】Jplayer视频播放器的使用 分类: Jplayer ...)