2011-12-14 4 views
5

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

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

UPDATE

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

ответ

3

Вы могли бы испытать такого рода вещи, пытаясь загрузить различные файлы примеров, используя try...catch конструкцию, и видящий, которые Filetypes нагрузку, а какие нет. См. this tutorial для загрузки файлов с помощью API веб-аудио в Chrome.

+0

Это умный, спасибо. Я все еще удивлен, что нет более прямого способа сделать это, хотя ... –

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/

+0

Oh дерьмо, не читал ваш вопрос осторожно - вы говорите о новом API для манипуляции аудио ... в любом случае, я думаю, что регулярный

+0

Эй, Альберт - спасибо за ответ. Это хорошее начало, но я действительно надеялся найти способ получить немного более подробную информацию из браузера. Я знаю, что он может воспроизводить некоторые типы WAV-файлов, но мне нужно выяснить, какие частоты дискретизации, бит-глубины и примеры кодировок он может обрабатывать, а также количество поддерживаемых аудиоканалов. У вас есть идея, как извлечь эту информацию? –

0

Использование Lo-Даш:

(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; 
})(); 
Смежные вопросы