質問: Webブラウザで出力される音をJavaScriptで録音する方法を探しています。要件は次の通りです。 1. Webブラウザからは、Web Audio Apiによって作成されたMIDI音が流れる 2. 1.の音を録音(キャプチャ)したい 3. 1.の音はブラウザによって再生されるが、ブラウザの音をスピーカでは**流さない**。そのため、マイクからスピーカの音を拾って録音する方法は使えない 4. JavaScriptを用いて録音する マイクからの音を拾えるなら、getUserMediaなどで録音が可能ですが、今回はそれが使えません。 類似の質問として[これ](https://ja.stackoverflow.com/questions/28194/%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%81%A7%E3%83%9E%E3%82%A4%E3%82%AF%E4%BB%A5%E5%A4%96%E3%81%AE%E9%9F%B3%E3%82%92%E9%8C%B2%E9%9F%B3%E3%81%A7%E3%81%8D%E3%82%8B%E3%81%8B "ブラウザでマイク以外の音を録音できるか")がありますが、録音する音はWebブラウザを介して出力される音のみに限定して構いません。 何卒ご教示のほど、よろしくお願いいたします。
回答: Web Audio APIを使って出力された音を録音したいということでしたら、MediaStreamAudioDestinationNodeが利用可能です。 このノードを音声の出力先として用いることで、Web Audio APIが生成した音声をMediaStreamとして取り出すことができます。このMediaStreamは、getUserMediaによって得たものと同様に利用可能です。 実際、MDNのMediaStreamAudioDestinationNodeのページには、We Audio APIで出力した音を録音して音声ファイル化するサンプルが記載されています。