【问题标题】:html5 audio codechtml5 音频编解码器
【发布时间】:2010-07-29 02:26:22
【问题描述】:

我正在使用 html5 音频标签,但似乎找不到为 mp3 和 wav 的编解码器指定的内容。

我知道 ogg 是:

<audio>
<source type='audio/ogg; codec="vorbis"' />
</audio>

有人知道我会为 mp3 和 wav 写什么吗?

【问题讨论】:

    标签: xhtml audio html html5-audio


    【解决方案1】:

    &lt;source type=""&gt; 关键字的最佳参考不是IANA media types registry,您可能会想,而是developer.mozilla.org's "Media formats for HTML audio and video" article,它记录了浏览器(不仅仅是 Firefox)实际实现的内容,而不是什么RFC 说应该会发生。 (例如,.WAV 文件没有正式的 MIME 类型。)

    对于你提到的音频容器格式,这些是我推荐的source 标签:

    • 奥格:&lt;source type="audio/ogg"&gt;
    • MP3:&lt;source type="audio/mpeg"&gt;
    • WAV:&lt;source type="audio/wav"&gt;(很烦人,audio/wave 同时是“首选”和“不适用于 Chrome”,非常感谢 Google)。

    我建议您不要准确指定您正在使用的编解码器,因为这会嵌入可能会更改到 HTML 中的细节。浏览器会弄清楚的。 (真的,这整个混乱应该直接在audio标签上使用通用URL,在HTTP请求上使用Accept:标头,但没有人听我的。)

    【讨论】:

    • 如果您不指定编解码器,则浏览器会稍微打开文件以查看是否可以播放。这就是添加编解码器值的好处。我想尝试解决这个问题。
    • @keith,我不确定这是否正确。我知道 Firefox 足够聪明,可以仅根据 MIME 类型跳过文件。
    • @Brad Pedantically,WAV 没有官方媒体类型注册,所以 nothing 是正确的。根据我正在阅读的文档,audio/wave 是“首选”,但也“不适用于 Chrome”,这听起来有些人需要被锁在一个房间里直到他们达成协议。并提交官方媒体类型注册。
    • @zwol 是的,标准会很好。 :-) 我很高兴 WAV 文件可以正常工作!我以前必须在 JavaScript 中对它们进行解码,然后通过 Web Audio API ScriptProcessorNode 将它们分解出来。
    【解决方案2】:

    您使用什么浏览器播放 mp3 文件?并非所有浏览器都支持通过音频标签播放 mp3。见:http://dev.opera.com/articles/view/html5-audio-radio-player/ 我建议制作一个根据浏览器类型选择音频类型的脚本。这样用户总是可以播放音乐。

    【讨论】:

    • 这就是提供多个来源并告诉浏览器它们是哪个编解码器的重点。浏览器会为自己选择它支持的那个。你不需要为它这样做。
    【解决方案3】:

    您在 Ogg 中的 Vorbis 语法接近正确,请务必使用 codecs,复数:

    audio/ogg; codecs=vorbis
    

    浏览器不支持 Ogg 中的 PCM 和 MP3。但是,WAV 支持 PCM,为此您可以使用:

    audio/wav; codecs=1
    

    (常数1WAVE_FORMAT_PCMRFC2361的附录A。)

    对于普通的 MPEG 第 3 层音频,除了比特流本身之外没有真正的容器,所以只需使用:

    audio/mpeg
    

    最后,正如其他人所提到的,您不需要明确指定编解码器。指定文件类型就足够了。但是,如果您已经知道编解码器,那么指定它有助于高效加载和减少探测。

    【讨论】:

      猜你喜欢
      • 2011-04-10
      • 2016-08-23
      • 2016-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-28
      • 2020-03-28
      相关资源
      最近更新 更多