C#を使用してラインインから継続的にサンプリングする最も簡単な方法は何ですか

StackOverflow https://stackoverflow.com/questions/228659

質問

C#を使用して、PCのオーディオラインから継続的にサンプリングします(そのデータを処理します)。サンプリングを行う最良の方法は何ですか?

役に立ちましたか?

解決

オープンソースの NAudio .NETオーディオライブラリを使用して、いくつかの(基本的な)オーディオキャプチャを実行できます。 NAudioDemoプロジェクトを見て、WaveIn関数を使用してWAVファイルに記録する簡単な例を確認してください。 NAudioには、WASAPI(Windows Vista以降)およびASIO(サウンドカードにASIOドライバーがある場合)を使用してオーディオをキャプチャする機能も含まれています。

他のヒント

Alvas Audio ライブラリもありますが、無料ではありません。あなたが支払わないが、美しく機能する場合は、画面。また、ドキュメントは素晴らしく、バグなどを見つけた場合はサポートも問題ありません。

.NETフレームワークにはサウンドを処理するための組み込みライブラリはありませんが、Win32を使用している場合は、DirectSoundなどのアンマネージライブラリを使用して処理できます。

Ianier Munozは CodeProjectのP / Invoke を介して waveIn を使用して、C#で全二重オーディオプレーヤーを作成する方法。彼は、 管理されたDirectSound についてさらに言及しています。一般的な方法。

マネージドDirectXは、オーディオの直接キャプチャをサポートし、非常に使いやすいですが、サポートされなくなり、昨年DirectX SDKから削除されました。 取得 2007年8月より前のSDKバージョンをインストールします。

要件を厳密に満たしていませんが、より堅牢なアプローチは、DirectX SDKからネイティブC ++ DirectSound APIの周りにC ++ / CLIラッパーアセンブリを作成することです。これは、C#コードから直接呼び出すことができます。これは、C ++とCOMのある程度の知識を必要としますが、間違いなく、より強力で保守可能なアプローチです。

私は過去にこれらの手法の両方を使用しましたが、どちらもうまく機能しています。

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