質問

再生中のサウンド(つまり、マイクなどの入力デバイスではなく、サウンドカードからのすべてのもの)をプログラムでキャプチャする方法を誰もが知っていますか。

役に立ちましたか?

解決

Windowsについて話していると仮定すると、これを行うには基本的に3つの方法があります。

1つ目は、オーディオデバイスのメイン出力を録音ソースとして開くことです。これは、ドライバーがサポートしている場合にのみ可能ですが、最近ではほとんどのユーザーがサポートしています。仮想デバイスの一般的な名前は「What You Hear」です。または「Wave Out」。適切なAPI(MSDNのWaveInまたはDirectSoundを参照)を使用してキャプチャを行う必要があります。

2番目の方法は、物理デバイスに到達する前にオーディオストリームをインターセプトできるフィルタードライバーを作成することです。繰り返しますが、この手法は適切なドライバートポロジを備えたデバイスでのみ機能し、気弱な人には適していません。

これは、これらのオプションのいずれも、任意のハードウェアを備えたPCで動作することを保証されないことを意味します。

最後の選択肢は、仮想オーディオケーブルなどの仮想オーディオデバイスを使用することです。このデバイスがWindowsでデフォルトの再生デバイスとして設定されている場合、正常に動作するすべてのアプリがそれを介して再生されます。その後、同じデバイスから記録して、合計出力をキャプチャできます。記録するアプリケーションが使用するデバイスを制御している限り、このオプションは常に機能します。

これらの手法にはすべて長所と短所があります。どちらがあなたのニーズに最も適しているかはあなた次第です。

他のヒント

Waveform Audio Interfaceを使用できます。 MSDNの記事 PInvokeごとにアクセスする方法について。

再生中のサウンドをキャプチャするには、マイクではなく再生デバイスを開くだけです。もちろん、出力用ではなく、入力用に開きます;-)

OSXを使用している場合、 Rogue AmoebaのAudio Hijack Pro がおそらく最も簡単な方法です。

とにかく、オーディオをラインインにループバックして録音してみませんか?これは、非常に簡単なソリューションです。オーディオ出力ジャックとラインインジャックにケーブルを差し込んで録音を開始します。

デバイスのステレオミックスを有効にする必要があります。これを行うと、直接音がこのデバイスを見つけます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top