在使用
PHP脚本验证视频请求之前,我们先使用它.该脚本与Safari和Chrome一样,在桌面上正常工作.但是在iOS上,我有一个坏的播放按钮.
我确信视频已经被正确的编码为iPhone / iPad,因为当我直接访问它,它的工作原理.
$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
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脚本,但这也没有帮助.
如果你自己处理它,那么你也需要自己处理字节范围的请求.