我已经花了几周的时间来摆弄HTML5视频/音频的地狱。通常是一段时间后出现失败的原因,但我一直都无法找到为什么我会在Chrome中转发和重新排列问题。
...总之
当请求视频或音频文件时,视频或音频标签正在加载到extjs面板中。这些文件作为流发送,它们在IE和Firefox中正常工作(在响应头添加持续时间之后) safari有一个问题,但显然整个网站都运行在HTTPS中(现在正在进行)。
在chrome(这是我的问题并且是最新版本)中,视频和音频加载得很好,但我无法倒带或前进。当试图寻找视频时,请继续几秒钟,直到它到达流的末尾。音频也播放得很好但是多次尝试倒带(或前进)只会打破进度条并停止播放音频。
我不完全确定从服务器发送了什么,但我想知道这是否可能是由于响应中缺少数据引起的。如果不是其他任何指向我修复的东西也同样受欢迎。我想我已经覆盖了整个设置,我确保每个浏览器都有一个源标签。
编辑:这是javascript为其中一个文件生成的代码:
<video width="1889" height="2" preload="auto" autoplay="1" controls="1" id="videoPlayer" style="width: 1889px; height: 233px; ">
<source src="http://localhost:8080/epaServer/epa/documents/496.ds_webm?sessionId=5616fde4-50af-43d6-a57c-f06540b64fcb" type="video/webm">
<source src="http://localhost:8080/epaServer/epa/documents/496.ds_mp4?sessionId=5616fde4-50af-43d6-a57c-f06540b64fcb" type="video/mp4">
<div>Your browser doesn't support html5 video. <a>Upgrade Chrome</a></div>
</video>
我还发现,即使我将其与应用程序分开打开,也无法找到任何文件。
我试图自己找到更多信息,这些是网络标签中的标题chrome显示:
请求网址:https:// localhost:8443 / epaServer / epa / documents / 496.ds_webm?sessionId = 5616fde4-50af-43d6-a57c-f06540b64fcb
请求方法:GET
状态代码:200 OK
请求标题
接受: / 接收字符集:ISO-8859-1,utf-8; Q = 0.7,*; Q = 0.3
Accept-Encoding:identity; q = 1,*; q = 0
接受语言:EN-US,EN; Q = 0.8
连接:保活
的Cookie:的sessionId = 5616fde4-50af-43d6-a57c-f06540b64fcb
主机:本地主机:8443
User-Agent:Mozilla / 5.0(Windows NT 6.1; WOW64)AppleWebKit / 535.19(KHTML,与Gecko一样)Chrome / 18.0.1025.168 Safari / 535.19
查询字符串参数视图URL编码
的sessionId:5616fde4-50af-43d6-a57c-f06540b64fcb
响应标题
缓存控制:私人
的Content-Length:1588816
内容类型:视频/ WEBM
日期:2012年5月14日星期一14:23:02 GMT
到期:周四,1970年1月1日01:00:00 CET
服务器:Apache-狼/ 1.1
X-内容持续时间:17.31
&GT;
答案 0 :(得分:22)
我找到了解决这个问题的原因:
我们的服务器现在无法理解部分内容。 因此,Chrome会发送无法解答的内容请求,从而使我们的视频和音频无法搜索(并且无法浏览)。
答案 1 :(得分:2)
您必须处理Chrome将发送到流式传输服务器的req.headers ['range']。
请参阅下面的我的代码。它在Chrome,Firefox,Edge和IE上运行良好。我尚未在Safari上对其进行测试,但希望它也能正常工作。
我使用Sails / Nodejs后端和gridFS / mongodb数据库将视频文件存储为块。
@SchemaValidation(type = SchemaValidationType.OUT)