質問

オーディオをプログラム的にキャプチャするにはどうすればよいでしょうか?ネットワーク上のデスクトップをリアルタイムでストリーミングするアプリケーションを実装しています。動画部分が完成しました。オーディオ部分を実装する必要があります。サウンド カードから PCM データを取得してエンコーダーに供給する方法が必要です (Windows Media フォーマットを使用して実装)。

答えはWin32 APIのopenMixer()、waveInOpen()関数に関連していると思いますが、正確に何をすべきかわかりません。

必要なチャンネルを開き、そこから PCM データを読み取るにはどうすればよいですか?

前もって感謝します。

役に立ちましたか?

解決

OS を使用してこれを直接行う方法はないと思います。これはサウンド カードに存在する (または存在しない) 機能です。一部のサウンド カードにはループバック インターフェイスがあり、Creative ではこれを「What U Hear」と呼んでいます。これをマイクではなく入力として選択し、すでに知っている通常の waveInOpen() を使用してそこから録音するだけです。

サウンド カードにこの機能がない場合は、ドライバーを独自に作成するなど、おかしなことをする以外に運が悪いと思います。あるいは、スピーカー出力からライン入力までケーブルを配線するようにユーザーを説得することもできます :)

他のヒント

新しい Windows Vista Core Audio API はこれを明示的にサポートしているため (ループバック録音と呼ばれます)、Vista のみのアプリケーションを使用できる場合は、これが最適です。

を参照してください。 ループバック録画 これを行う方法については、MSDN の記事を参照してください。

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