MP4播放时直接访问,但不是通过PHP阅读时,在iOS上

前端之家收集整理的这篇文章主要介绍了MP4播放时直接访问,但不是通过PHP阅读时,在iOS上前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在使用 PHP脚本验证视频请求之前,我们先使用它.该脚本与Safari和Chrome一样,在桌面上正常工作.但是在iOS上,我有一个坏的播放按钮.

我确信视频已经被正确的编码为iPhone / iPad,因为当我直接访问它,它的工作原理.

相关的PHP代码

$file_name = 'test-video.mp4';
$file_size = (string)(filesize($file_name));
header('Content-Type: video/mp4');
header('Content-Length: '.$file_size);
readfile_chunked($file_name);
exit;

(readfile_chunked()与readfile()类似,但对于非常大的文件,在PHP手册页面的注释中找到:http://php.net/manual/en/function.readfile.php.无论如何,test-video.mp4只有〜5 MB,小于内存限制 – 在这种情况下,我实际上可以在普通的readfile()中替换,并产生完全相同的行为.)

当我直接访问test-video.mp4时,我得到的标题是:

Accept-Ranges:bytes
Connection:Keep-Alive
Content-Length:5558749
Content-Type:video/mp4
Date:Sun,27 Jun 2010 21:02:09 GMT
Etag:"1c04757-54d1dd-489944c5a6400"
Keep-Alive:timeout=10,max=30
Last-Modified:Tue,22 Jun 2010 01:25:36 GMT
Server:Apache/2.2.15 (CentOS) mod_ssl/2.2.15 0.9.8l DAV/2 mod_auth_passthrough/2.1 FrontPage/5.0.2.2635

PHP脚本的头文件是:

Connection:Keep-Alive
Content-Disposition:inline; filename="test-video.mp4"
Content-Length:5558749
Content-Type:video/mp4
Date:Sun,27 Jun 2010 21:03:32 GMT
Keep-Alive:timeout=10,max=15
Server:Apache/2.2.15 (CentOS) mod_ssl/2.2.15 0.9.8l DAV/2 mod_auth_passthrough/2.1 FrontPage/5.0.2.2635
X-Powered-By:PHP/5.2.13

我已经尝试了许多不同的头文件排列,甚至与直接请求的那些匹配,甚至没有效果.

有没有人通过PHP在iOS上成功投放HTML5视频?

[注意:我会尝试使用X-Sendfile,但该站点位于共享主机上,访问权限非常有限.]

编辑:我正在阅读,iOS可以对文件扩展名感到敏感,所以我尝试设置一个RewriteRule,将MP4请求重写回原始的PHP脚本,但这也没有帮助.

如果你自己处理它,那么你也需要自己处理字节范围的请求.

猜你在找的PHP相关文章