簡體   English   中英

在.NET應用程序中使用音頻的推薦方法?

[英]Recommended way to work with audio in .NET applications?

我正在嘗試使用.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.

to use this stuff." ...我認為松散地翻譯為“甚至不使用這些東西。” 我在這里遺漏了什么,或者Managed DirectX真的死了嗎? 另一個StackOverlow問題表明XNA是Managed DirectX的替代品,但它缺乏我需要的那種低級功能。

那么,哪個API或第三方庫對.NET下的音頻開發實際上有用呢? 使用COM互操作或P / Invoke是可以接受的,只要有一些不錯的.NET示例代碼可用於開始...

你有沒有在CodePlex上看過NAudio 看起來它具有您需要的功能。

我一直是擁有.NET API的BASS庫的粉絲。

如果您想嘗試基於DirectX的聲音解決方案,可以使用SlimDX 它支持DirectSound和XAudio接口。

另一個是FMOD

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM