php如何输出能让google浏览器直接播放的mp4文件

逍遥丶綦 2016-02-26 02:08:15
如果我们直接把一个MP4文件放在服务器里,然后用google浏览器打开,浏览器会默认在线观看。
但是往往文件并不是那么赤裸裸的保存,如果是用php来输出mp4文件,试了很久,浏览器都会直接当作文件下载,而不会尝试在线播放。
刚开始以为是必须先要支持断线下载,然后改了一下,后来还是没用,浏览器还是默认直接当作文件下载。
不知道有没有大牛能解决这个让我头疼好久的问题。。
...全文
573 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
逍遥丶綦 2016-02-26
  • 打赏
  • 举报
回复
引用 1 楼 misakaqunianxiatian 的回复:
在php脚本里写html代码,用html5的video标签来解决播放问题
我并不想这样,如果是这样的话,那么手机就没法直接播放了。 这个问题我已经解决了,看下面
逍遥丶綦 2016-02-26
  • 打赏
  • 举报
回复
这个问题我已经解决了,代码如下
<?php
function PutMovie($file) {
	header("Content-type: video/mp4");
	header("Accept-Ranges: bytes");
	
	$size = filesize($file);
	if(isset($_SERVER['HTTP_RANGE'])){
		header("HTTP/1.1 206 Partial Content");
		list($name, $range) = explode("=", $_SERVER['HTTP_RANGE']);
		list($begin, $end) =explode("-", $range);
		if($end == 0) $end = $size - 1;
	}
	else {
		$begin = 0; $end = $size - 1;
	}
	header("Content-Length: " . ($end - $begin + 1));
	header("Content-Disposition: filename=".basename($file));
	header("Content-Range: bytes ".$begin."-".$end."/".$size);

	$fp = fopen($file, 'rb');
	fseek($fp, $begin);
	while(!feof($fp)) {
		$p = min(1024, $end - $begin + 1);
		$begin += $p;
		echo fread($fp, $p);
	}
	fclose($fp);
}
putfile("1.mp4");
?>
misaka去年夏天 2016-02-26
  • 打赏
  • 举报
回复
在php脚本里写html代码,用html5的video标签来解决播放问题

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧