2017-09-05 12 views
-1

랩톱에서 들어오는 소리를 듣고 지정된 한도를 초과하는 경우 특정 데시벨 수준으로 설정하는 자동 볼륨 제어 프로그램을 작성 중입니다.Visual Studio Express Edition에서 API를 사용/액세스하는 방법 C#

연구하면서 CoreAudioAPI에 대해 알아 냈으며 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); 

누군가가 내가 VS Express 버전에 C# 프로그램에서 API에 액세스 어떻게 말해 주시겠습니까?

+0

SDK와 함께 제공된 어셈블리를 프로젝트에 대한 참조로 추가 했습니까? – rene

+0

어디에서 찾을 수 있는지 또는 추가 방법을 모르겠습니다. 그들은 dll입니까? –

+1

그 API에는 .Net 래퍼가없는 것처럼 보입니다. 대신 다음을 살펴보십시오. https://stackoverflow.com/questions/31928429/com-objects-c-sharp-casting-mmdeviceenumerator-to-immdevicenumerator-invalidcas and this : 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을 가져야합니다.
찾아보기 옵션을 사용하고 Core Audio for .NET이 포함 된 어셈블리가있는 폴더로 이동하십시오.

올바른 어셈블리를 추가하면 네임 스페이스가 인식되고 코드가 네임 스페이스에 대해 컴파일하거나 더 이상 불평하지 않게됩니다.

+0

MSDN에는 Core Audio API에 대한 정보가 있지만 구성 요소는 다릅니다. https://msdn.microsoft.com/en-us/library/windows/desktop/dd370802(v=vs.85).aspxd.C#에 대한 언급이 없기 때문에 C++ 및 헤더 파일에 대한 언급이 있지만 어쩌면 구현을 C#으로 수행 할 수 없습니까? –

+1

@RaniaAsh : Core Audio API는 일련의 COM 인터페이스로 제공됩니다. COM 인터페이스는 .NET에서 쉽게 액세스 할 수 있습니다. 자세한 내용은 [COM Interop] (https://docs.microsoft.com/en-us/dotnet/visual-basic/programming-guide/com-interop/)를 참조하십시오. – IInspectable