2011-12-14 2 views
5

私はWeb Audio APIの使用に興味があります。残念ながら、私のオーディオファイルはすべて、Chromeがデコードできない難解な形式です。 (これらのファイルは.wavですが、96 kHzで32ビットのフロートエンコーディングでサンプリングされています)Chromeでサポートされているオーディオファイル形式は?

ブラウザー(Chrome)に問い合わせて、サポートするオーディオ形式とエンコーディングを正確に調べる方法はありますか?

UPDATE

私はここにクロームでサポートされているファイル形式のリストを見つけた:https://sites.google.com/a/chromium.org/dev/audio-video

答えて

3

あなたはtry...catch構文を使用したサンプルファイルのさまざまなをロードしようとしていることにより、この種のものをテストすることができ、およびシーイング。 ChromeでウェブオーディオAPIを使用してファイルを読み込む方法については、this tutorialをご覧ください。

+0

これはスマートです、ありがとう。私はまだそれを行うより直接的な方法がないことにはまだ驚いています... –

0

があります!私たちはここにWAVファイルの話をしているので、私はこれらを使用することになり

// 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"'); 
} 

これがどのように信頼性が知っているが、...しないでください:

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

ああがらくた、あなたのを読んでいません質問を慎重に - あなたは、オーディオ操作のための新しいAPIについて話しています....いずれにせよ、私は普通の

+0

ヘイ・アルバート - 返事をくれてありがとう。これは良いスタートですが、ブラウザから少し詳細な情報を得る方法を実際に探していました。私はそれがいくつかのタイプの.wavファイルを再生できることを知っていますが、サポートするオーディオチャンネルの数だけでなく、どのサンプルレート、ビット深度、サンプルエンコーディングを処理できるかを調べる必要があります。あなたはそのような種類の情報をどのように抽出するか考えていますか? –

0

(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; 
})(); 
関連する問題