代码之家  ›  专栏  ›  技术社区  ›  jshen

媒体“错误”源“不支持”HTML5音频问题

  •  12
  • jshen  · 技术社区  · 14 年前

    我正在使用HTML5音频播放器,当我从与HTML页面相同的主机上服务器.ogg文件时,一切工作正常。当我将ogg文件放在cdn中时,它会失败,错误代码是media-err_-src_-not-upported

    例如,这个很好用

    <audio src="/song.ogg" id="player">
      Your browser does not support the <code>audio</code> element.
    </audio>
    

    但这失败了,上面的错误代码

    <audio src="http://mycdn.com/song.ogg" id="player">
      Your browser does not support the <code>audio</code> element.
    </audio>
    

    失败的音频文件的头看起来像这样(这是来自另一个显示相同行为的ogg文件)

    HTTP/1.1 200 OK
    Server: CacheFlyServe v26b
    Date: Sat, 13 Feb 2010 21:10:48 GMT
    Content-Type: application/octet-stream
    Connection: close
    ETag: "c6ee7d86e808cc44bbd74a8db94a5aae"
    X-CF1: fA.syd1:cf:cacheD.syd1-01
    Content-Length: 2398477
    Last-Modified: Sat, 13 Feb 2010 20:50:56 GMT
    Accept-Ranges: bytes
    X-Cache: MISS from deliveryD-syd1
    
    2 回复  |  直到 8 年前
        1
  •  7
  •   Nickolay    14 年前

    content-type=octet/stream-header是问题所在,尽管如果我正确地阅读规范,它不应该是问题所在。下面是一个测试用例: http://mozilla.doslash.org/stuff/video-test/video.html

    filed a bug 在Mozilla的Bugzilla。[编辑]回复:

    我们不做任何内容嗅探来找出内容是什么-我们依赖 提供正确的mime类型。这就是为什么application/octet流 对于canplayType,不是play,而是返回“”的方式。

        2
  •  1
  •   user273187    14 年前

    问题是您为音频文件提供的mime类型。它必须是“audio/ogg”、“application/ogg”或“video/ogg”,以便firefox播放。火狐不做任何形式的“内容嗅探”来确定文件的格式——它完全依赖于mime类型。