在使用
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脚本,但这也没有帮助.