【问题标题】:Play mp3 files via HTML5 on Firefox Mac, alternatives在 Firefox Mac 上通过 HTML5 播放 mp3 文件,替代方案
【发布时间】:2013-08-10 10:44:33
【问题描述】:

我需要播放一个 mp3 文件;像

var sound = new Audio('http://.......'); snd.play();

在 Windows 上的 Chrome 和 Firefox 中有效,但在 Mac 上的 Firefox 中无效,您能确认这是正常行为吗?

从这里: https://bugzilla.mozilla.org/show_bug.cgi?id=799318 似乎在 Mac 上刚刚添加了该功能(所以可能当前版本的 Firefox 没有提供它)但是有很多关于我的消息,我有点困惑......

如果我只是将 mp3 URL 放在 URL 栏中是否可以正常工作?

如果你确认这是正常行为,你能告诉我哪些是替代品吗? 1)闪退? 2) 即时将 mp3 转换为 oog(firefox 支持)?

你能解释一下如何实现这两者吗?

谢谢。

【问题讨论】:

    标签: firefox mp3 html5-audio


    【解决方案1】:

    您可以在用于播放音频的 URL 周围使用包装器,因为不同的浏览器支持不同的编解码器。音频对象有一个canPlayType 方法,您可以使用该方法(不幸的是,使用更冗长的编解码器名称)来确定浏览器支持的类型。有了这个,你可以创建一个函数来获取 URL 路径并修改扩展。

    // If you wanted to provide only ogg and mp3:
    function getSoundURL (url) {
      var audio = document.createElement('audio');
      if (!audio.canPlayType) return null;
      if (audio.canPlayType('audio/ogg; codecs="vorbis"').replace(/no/, ''))
        return url + '.ogg';
      if (audio.canPlayType('audio/mpeg;').replace(/no/, ''))
        return url + '.ogg';
      return null;
    }
    

    More info on canPlayType and codecs.

    还有一些工具可以轻松检测支持的类型,其中一个是allen,我经常将其用于音频项目。免责声明:我做到了:p

    Flash 替代方案可以工作(上面提到的 SoundManager2 很好),并且可以在服务器上进行转码,例如 FFMPEG,具体取决于您的服务器。

    【讨论】:

      【解决方案2】:

      调查一下。 https://github.com/nddrylliog/jsmad#readme

      它会即时隐藏它。

      【讨论】:

        【解决方案3】:

        是的,这是正常行为。见这里:https://bugzilla.mozilla.org/show_bug.cgi?id=851290

        Flash 后备可能会更容易。我建议使用SoundManager2,因为它会为您提供统一的 API,而不必担心浏览器支持哪些编解码器。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-07-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-05-11
          相关资源
          最近更新 更多