7

.NET 3.5 で簡単なオーディオ アプリケーションを作成しようとしています (できれば VB.NET を使用しますが、喜んで C# を使用します)。私がやりたいことは次のとおりです。

  • (既定の) Windows オーディオ入力デバイスからのオーディオをサンプルあたり 8 ビットの PCM 形式で継続的に録音する
  • キャプチャされた N バイトごとに、生のオーディオの分析を行います (いくつかの RMS および/または SPL の計算 - 基本的に、きれいな VU 棒グラフに必要なもの)
  • 分析後にオーディオ フラグメントが興味深いと判断された場合は、圧縮ファイル形式 (MP3 など) を使用して保存します。

最初に気付いたのは、基本的な .NET Framework でのオーディオ サポートがほとんど存在しないことです。少し調べてみると、主に Managed DirectX を使用したサンプル コードが見つかりました。ただし、MSDN ドキュメントの欠如、ライブラリのヴィンテージ (2004 年)、および VS.NET 2008 での次の威嚇的な MDA 例外により、これは行き止まりであると確信しました。

Message: DLL 'Microsoft.DirectX.dll' is attempting managed execution inside 
OS Loader lock. Do not attempt to run managed code inside a DllMain or image
initialization function since doing so can cause the application to hang.

...これは、「このようなものを使用しようとさえしないでください」と大まかに翻訳されていると思います。ここで何かが足りないのでしょうか、それともマネージ DirectX は本当に死んでいるのでしょうか? 別の StackOverlow の質問によると、XNA は Managed DirectX の代替品ですが、私が必要とする低レベルの機能が欠けています。

では、実際に .NET でのオーディオ開発に役立つ API またはサードパーティ ライブラリはどれでしょうか? COM 相互運用機能または P/Invoke の使用は、適切な .NET サンプル コードが利用可能である限り、受け入れられます...

4

4 に答える 4

4

CodePlex で NAudioを調べましたか? 必要な機能を備えているようです。

于 2009-12-10T16:12:21.137 に答える
2

私は、.NET API を備えたBASS ライブラリのファンでした。

于 2009-12-10T16:19:50.160 に答える
1

もう 1 つはFMODです。

于 2009-12-12T16:59:56.580 に答える
1

DirectX ベースのサウンド ソリューションを試してみたい場合は、SlimDXを使用できます。DirectSound および XAudio インターフェイスをサポートしています。

于 2009-12-10T16:16:25.573 に答える