http - 寻求在 HTML5 音频标签中不起作用

标签 http audio html streaming

我有一个在本地运行的 lighttpd 服务器。如果我在服务器上加载静态文件(通过 html5 音频标签),它会正常播放和搜索。

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

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

我不明白的是:

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

如有任何建议,我们将不胜感激。

最佳答案

这是一些帮助您入门的 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] 

关于http - 寻求在 HTML5 音频标签中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2871631/

相关文章:

python - 在 python http.client.HTTPSConnection 中设置更新的 ssl 版本

api - 在meteor中如何发出API请求

android - 使用 FFMPEG 仅更改其中一个音频 channel 的音量

regex - 允许特定文件通过 https 运行

iphone - 为什么我在一个网络上获得 HTTP 代码 414 而在另一个网络上却没有?

python - 通过树莓派同时播放多个声音文件,最好使用python

audio - ffmpeg 用循环音频替换部分音频文件

javascript - 在不调整列大小或破坏布局的情况下隐藏表格行

html - 需要图像来匹配灵活父包装的大小

javascript - 自定义搜索栏