2

オーディオブラウザの拡張機能を作成することを期待して、NaClの調査を開始しました。ドキュメントには正弦波のデモが含まれているため、シンセサイザーを作成するのは簡単なようです。

リアルタイムの効果を適用できるように、出力される前にブラウザのオーディオストリームをキャプチャできるかどうかを知りたいです。これは可能ですか?

4

1 に答える 1

4

それが可能であるだけではありません。私はそれをしました。onaudioprocessコールバックがinputbufferを受け取り、postMessageを介して待機中のNaClモジュールに渡すScriptProcessorNodeを作成します。NaClモジュールの処理が完了すると、postMessageを介してJavaScriptに送り返します。ScriptProcessorNodeは何かを出力する必要があるため、1フレームの遅延が発生し、ScriptProcessorNodeはNaClから受信した最新の処理済み出力をコピーします。

フローは次のようになります。

ScriptProcessorNode->NaClへのpostMessage入力バッファ

ScriptProcessorNode->NaClから受信した最新のバッファーを出力バッファーにコピーします。

NaCl->オーディオサンプルバッファを受信し、処理してポストバックします。

コードをGitHubに投稿するか、他に質問がある場合はお知らせください。

HTH、ジョン

于 2012-12-11T19:41:04.667 に答える