【问题标题】:Seeking not working in HTML5 audio tag寻求在 HTML5 音频标签中不起作用
【发布时间】:2011-02-21 17:35:26
【问题描述】:

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

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

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

我不明白的是:

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

我们将不胜感激地接受任何建议。

【问题讨论】:

    标签: http audio html streaming


    【解决方案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] 
    

    【讨论】:

      【解决方案2】:

      Google 告诉我,您必须对字节范围使用 staticFilter 才能在 CherryPy 中工作——但这​​仅适用于静态文件。幸运的是this posting 还包括如何处理非静态数据的指针:-)

      【讨论】:

        猜你喜欢
        • 2012-08-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-26
        相关资源
        最近更新 更多