ope*_*ged 3 html5 google-chrome mobile-safari html5-video
我一直在尝试在我的网页中使用html5视频标签.我在桌面上使用chrome,在iPad上使用safari.它在源标签中工作正常我提供了实际mp4文件的URL但是如果我提供了我的控制器/ servlet的URL,那么 - 在chrome上,视频只播放一次,之后你甚至无法使用搜索栏或者在点击播放按钮时再次播放视频 - 在iPad上的Safari中,视频根本无法加载
在我的控制器中,我将内容类型设置为"video/mp4"并设置content-length属性.不知道为什么它不起作用.尽管如此,桌面上的firefox和safari一切都运行良好.
任何帮助将受到高度赞赏.谢谢你的期待.
这是代码:
工作:
<video controls="controls" width="700" height="390" class="myVideo">
<source src="http://example.com/fileName.mp4" type="video/mp4"/>
<source src="http://example.com/fileName.ogv" type="video/ogg"/>
</video>
Run Code Online (Sandbox Code Playgroud)
不工作:
<video controls="controls" width="700" height="390" class="myVideo">
<source src="http://example.com/servletName?type=mp4" type="video/mp4"/>
<source src="http://example.com/servletName?type=ogv" type="video/ogg"/>
</video>
Run Code Online (Sandbox Code Playgroud)
我有完全相同的问题...... PHP脚本获取文件内容并使用标头将其发送到浏览器.
public function videos($name, $extension, $format = null) {
$format = is_null($format) ? $extension : $format;
$file = file_get_contents(FCPATH . APPPATH . "resources/videos/{$name}.{$extension}");
header("Content-length: ".strlen($file));
// header('Content-Transfer-Encoding: binary');
header("Content-Type: video/{$format}");
echo $file;
}
Run Code Online (Sandbox Code Playgroud)
在Firefox和Safari上,视频播放效果很好.在Chrome上,它只播放一次,无法使用搜索栏.在iPad上,它根本不播放.
UPDATE
嘿!!!我刚刚找到了让它运转的方法.你必须发送"Accept-Ranges:bytes"标题!
PHP
header("Accept-Ranges: bytes");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1923 次 |
| 最近记录: |