2017-09-05 24 views
-1

我正在開發一個自動音量控制程序,用於偵聽筆記本計算機發出的聲音,並將其設置爲特定的分貝級別(如果超過指定的限制)。如何在Visual Studio Express Edition中使用/訪問API C#

在研究中,我發現了CoreAudioAPIs,甚至下載了Windows 10 SDK以訪問這些API。

但我無法訪問該API。我在Visual Studio Express Edition 2015中使用了C#。當我編寫「使用CoreAudioAPI」時,CoreAudioAPI下出現紅色波形。與MMDevice和EndpointVolume API相同,我無法找到它們!

我試過添加引用,但沒有列出API。

下面的代碼提供了錯誤:

MMDeviceEnumerator devEnum = new MMDeviceEnumerator(); 
MMDevice defaultDevice = 
devEnum.GetDefaultAudioEndpoint(EDataFlow.eRender, ERole.eMultimedia); 

有人能告訴我我該如何訪問API在C#程序在VS Express版本?

+0

您是否將SDK附帶的程序集添加爲項目的引用? – rene

+0

我不知道在哪裏可以找到它們或如何添加它們。他們是否是dll? –

+1

它看起來不像那些API有.Net包裝器。相反,看看這個:https://stackoverflow.com/questions/31928429/com-objects-c-sharp-casting-mmdeviceenumerator-to-immdeviceenumerator-invalidcas和這個:https://stackoverflow.com/questions/14306048/controling -volume-mixer,但最好檢查一下[NAudio](https://github.com/naudio/NAudio) – rene

回答

1

該命名空間來自外部庫,由xfx創建,並在其博客文章Core Audio for .NET中進行了描述。

該庫的源代碼可在GitHub找到,zip是linked from the blog post

一旦你編譯或提取二進制文件,你必須從你的項目add a reference to those dll's
確保您使用瀏覽選項並導航到包含用於.NET的Core Audio的程序集的文件夾。

添加正確的程序集後,名稱空間將被識別,您的代碼將編譯/不再抱怨命名空間。

+0

MSDN具有關於Core Audio API的信息,但它們是不同的組件:https://msdn.microsoft.com/en-us/library/windows/desktop/dd370802(v=vs.85).aspxd。由於沒有提到C#,但提到了C++和頭文件,可能實現不能像C#那樣完成? –

+1

@RaniaAsh:核心音頻API是作爲一組COM接口提供的。 COM接口可以很容易地在.NET中訪問。有關詳細信息,請參見[COM Interop](https://docs.microsoft.com/zh-cn/dotnet/visual-basic/programming-guide/com-interop/)。 – IInspectable

相關問題