Chrome支持的音频文件格式?

时间:2011-12-14 03:26:01

标签: audio google-chrome web-audio

我对使用Web Audio API感兴趣。不幸的是,我的音频文件都是一种深奥的格式,Chrome无法解码。 (它们是.wavs,但采用32位浮点编码以96 kHz采样。)

我有什么方法可以查询我的浏览器(Chrome)以确切了解它支持哪种音频格式和编码?

更新

我在这里找到了Chrome支持的文件格式列表:https://sites.google.com/a/chromium.org/dev/audio-video

4 个答案:

答案 0 :(得分:4)

您可以尝试使用try...catch构造加载各种示例文件,并查看哪些文件类型加载,哪些文件类型不加载,从而测试此类问题。有关使用Chrome中的Web Audio API加载文件的信息,请参阅this tutorial

答案 1 :(得分:0)

有!我不知道这有多可靠,但是......

// Need to check the canPlayType first or an exception
// will be thrown for those browsers that don't support it      

var myAudio = document.createElement('audio'); 

if (myAudio.canPlayType) {
   // Currently canPlayType(type) returns: "", "maybe" or "probably" 
   var canPlayMp3 = !!myAudio.canPlayType && "" != myAudio.canPlayType('audio/mpeg');
   var canPlayOgg = !!myAudio.canPlayType && "" != myAudio.canPlayType('audio/ogg; codecs="vorbis"');
}

由于我们在这里谈论WAV文件,我会使用这些:

audio/vnd.wave, audio/wav, audio/wave, audio/x-wav

最好的办法是弄清楚你的文件的MIME类型是什么(应该是上面的一种),然后用这样的东西检查:

var canPlayWav = !!myAudio.canPlayType && "" != myAudio.canPlayType('MIME_TYPE_HERE');
if (canPlayWav) { dothis(); } else { dothat(); }

我希望这有帮助!

来源:http://html5doctor.com/native-audio-in-the-browser/

答案 2 :(得分:0)

非程序化的方式是那些网站:

答案 3 :(得分:0)

使用Lo-Dash:

(function(){
  var a = document.createElement('audio'),
      types = _(navigator.mimeTypes).pluck('type'),
      isAudio = /^audio\//, canPlay = {};
  if (a && a.canPlayType) {
    types
      .push('audio/flac', 'audio/opus', 'audio/webm', 'audio/ogg', 'audio/midi')
      .flatten()
      .uniq()
      .each(function(type){
        if (isAudio.test(type)) {
          canPlay[type] = !!a.canPlayType(type);
        }
      });
  }
  return canPlay;
})();