Поддерживаемые форматы аудио файлов для Chrome? - PullRequest
6 голосов
/ 14 декабря 2011

Я заинтересован в использовании Web Audio API . К сожалению, все мои аудиофайлы находятся в эзотерическом формате, который Chrome не может декодировать. (Они имеют формат .wavs, но с частотой дискретизации 96 кГц и 32-разрядным кодированием с плавающей запятой.)

Можно ли как-нибудь запросить у моего браузера (Chrome), какие именно форматы аудио и кодировки он поддерживает?

UPDATE

Я нашел список форматов файлов, поддерживаемых Chrome, здесь: https://sites.google.com/a/chromium.org/dev/audio-video

Ответы [ 4 ]

4 голосов
/ 16 декабря 2011

Вы можете протестировать такого рода вещи, попытавшись загрузить множество примеров файлов, используя конструкцию try...catch, и посмотреть, какие типы файлов загружаются, а какие нет.См. в этом руководстве для загрузки файлов с помощью API Web Audio в Chrome.

0 голосов
/ 23 апреля 2014

Использование 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;
})();
0 голосов
/ 23 апреля 2014

Непрограммным способом были бы такие сайты:

0 голосов
/ 14 декабря 2011

Есть!Я не знаю, насколько это надежно, но ...

// 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/

...