这可能是 Servlets 问题或 HTML5 问题,具体取决于解决方案的结果...... :)
我有一个(Tomcat)Servlet 提供音频短片,然后在 HTML5 音频元素中拾取这些短片。音频正确播放,但在某些浏览器上仅播放一次(因此尝试“倒带”或重播音频不起作用)。我怀疑这是因为我的 Servlet 没有报告它支持范围请求:我注意到给定同一服务器上的静态音频文件,Apache 添加了 HTTP“范围单元”响应标头,然后重播文件然后在这样的情况下工作案例。所以我假设在我遇到问题的浏览器上,为了重播文件,浏览器会发出 HTTP Content-Range 请求,而不是缓冲整个文件或重新请求整个文件。(至少在 Safari 上,重播从我的 Servlet 提供的音频可以正常工作:我
所以我的问题:
HTML中有没有办法请求浏览器在播放时缓冲整个音频文件以允许重播,而不是服务器必须支持范围请求?
如果没有,是否有人有响应来自 Servlet 的范围请求的经验?我假设这只是(a)发送“范围单元”响应代码以响应初始请求,然后(b)寻找相关的 HTTP 请求标头(“Content-Range?”)的情况(我猜这就是他们的处理方式?)在后续请求中并且只提供音频的相关部分?有什么我应该注意的陷阱吗?