寻求不使用HTML5音频标签

时间:2010-05-20 07:05:17

标签: http audio html5 streaming

我有一个在本地运行的lighttpd服务器。如果我在服务器上加载一个静态文件(通过一个html5音频标签),它就可以播放并且搜索得很好。

但是,在运行开发服务器(web.py/CherryPy)时,或者通过已定义的操作URL而不是静态文件返回字节时,搜索不起作用。它也不会加载持续时间。

根据this Opera Page中的“HTTP字节范围请求”部分,它与支持字节范围请求/部分内容响应有关。内容被视为流式传输。

我不明白的是:

  • 如果浏览器确实已经下载了整个文件,它可以显示持续时间,当然可以查找。
  • 我需要在Web服务器上执行哪些操作才能启用字节范围请求(对于非静态URL)。

非常感谢任何建议。

2 个答案:

答案 0 :(得分:1)

这里有一些web.py代码可以帮助您入门(恰好也需要这个并遇到您的问题):

## experimental partial content support
## perhaps this shouldn't be enabled by default
range = web.ctx.env.get('HTTP_RANGE')
if range is None:
    return result

total = len(result)
_, r = range.split("=")
partial_start, partial_end = r.split("-")

start = int(partial_start)

if not partial_end:
    end = total-1
else:
    end = int(partial_end)

chunksize = (end-start)+1

web.ctx.status = "206 Partial Content"
web.header("Content-Range", "bytes %d-%d/%d" % (start, end, total))
web.header("Accept-Ranges", "bytes")
web.header("Content-Length", chunksize)
return result[start:end+1] 

答案 1 :(得分:0)

谷歌告诉我你必须使用staticFilter来实现字节范围在CherryPy中工作 - 但这仅适用于静态文件。幸运的是,this posting还包含有关如何为非静态数据执行此操作的指示: - )