3

USB マイクを介してライブ オーディオを録音し、WAV に変換してサーバーにアップロードしようとしています。Windows XP で Chrome Canary (最新ビルド) を使用しています。http://webaudiodemos.appspot.com/AudioRecorder/index.htmlの例に基づいて開発しました

記録を有効にすると、onaudioprocess イベント入力バッファー (e.inputBuffer.getChannelData(0) など) がすべてゼロ値のデータであることがわかります。当然、この場合、音声出力も記録もありません。入力バッファ データを、出力 WAV ファイルに現れるトーンを生成するデータに置き換えることで、コードの残りの部分を検証しました。createMediaStreamSource 以外のアプローチを使用すると、正しく動作します。たとえば、createObjectURL を使用して src をその URL に設定すると、ライブ オーディオの再生をリアルタイムで正常に聞くことができます。また、オーディオ ファイルをロードして createBufferSource を使用することもできます。もちろん、再生中に (これが聞こえます)、inputBuffer にゼロ以外のデータが含まれていることを確認します。

Web で見たほとんどの Web オーディオ録音デモは createMediaStreamSource に依存しているため、これは Chrome の後続のリリースでうっかり壊れてしまったのではないかと推測しています。誰でもこれを確認したり、この問題を克服する方法を提案したりできますか?

4

1 に答える 1

2

おそらくChromeのバージョンではありません。ライブ入力には、現在でもいくつかの高い要件があります。

1) Windows では、入力と出力のサンプル レートを同じにする必要があります。2) Windows 7 以降のみ - Windows XP では動作しないと思います。3) 入力デバイスはステレオ (または 2 チャンネル以上) である必要があります。ほとんどではないにしても、多くの USB マイクがモノラル デバイスとして表示され、Web オーディオはまだ動作していません。

もちろん、私の AudioRecorder デモもあなたのために働いていないと思います。

これらの制限は、時間の経過とともに削除されます。

于 2013-06-04T17:18:51.817 に答える