从服务一个Java servlet的音频数据的HTML5音频控制(Serving audio dat

2019-07-03 17:59发布

这可能是一个Servlet的问题或HTML5的问题,这取决于溶液变出什么是... :)

我有服务了音频的短片然后将其在HTML5音频元素拿起(Tomcat)的Servlet的。 音频可以正常播放,但在某些浏览器只有一次(这样企图“倒带”或重放音频不工作,那么)。 我怀疑这是因为我的servlet没有报告其支持范围请求:我注意到,考虑到同一台服务器上一个静态的音频文件,Apache的添加HTTP“范围单元”响应报头,和重放然后在文件中这样的作品案例。 所以我假定上的浏览器在那里我遇到的问题,以重播文件时,浏览器会发出HTTP内容范围请求,而不是要么缓存整个文件或重新请求整个文件。 (在Safari上至少,从重放我的servlet服务的音频工作正常:我猜是因为Safari浏览器缓存的整个音频。)

所以我的问题:

  • 有没有在HTML的方式来请求浏览器缓存上,以便使回放而不是服务器需要一定支持范围请求播放整个音频文件?

  • 如果没有,没有任何人有响应的范围从一个Servlet的请求的经验吗? 我假定这只是(一)响应发送“范围单元”响应代码最初的请求,然后(b)寻找出相关的HTTP请求头(“内容范围?”)的情况下,(我猜这就是他们如何在后续请求处理的?),并只提供音频的相关部分? 是否有任何陷阱,我应该知道的?

Answer 1:

有没有在HTML的方式来请求浏览器缓存上,以便使回放而不是服务器需要一定支持范围请求播放整个音频文件?

即使有,也不会在所有的浏览器,特别是手机/ ipad公司/等支持。

任何人都不会有响应范围从一个Servlet的请求的经验吗?

还有由BalusC提供的实现 。 我把它移植到我的环境,除了一些小问题 ,(这是最有可能无关的实现,但对客户端的细节),它的伟大工程。



文章来源: Serving audio data from a Java servlet for an HTML5 audio control