2016-09-12 3 views
0

나는 나와 내 친구들이 사용할 프로그램을 만들고 있습니다. Windows 오디오 믹서를 제어 할 프로그램을 만들고 싶습니다. C#을 사용 중입니다.Windows 믹서에서 볼륨 값 읽기

이미 볼륨을 제어하는 ​​방법에 대한 아이디어가 있습니다. 하지만 믹서 내부의 각 애플리케이션의 개별 볼륨 레벨을 제어하는 ​​데 대한 몇 가지 팁을 원합니다.

주요 질문은 (약간 재미 있습니다.) 각 응용 프로그램의 개별 미터 내부의 볼륨 값을 어떻게 읽을 수 있습니까? 즉, 응용 프로그램의 볼륨 표시 줄/미터 내부에있는 녹색 및 회색 막대의 값을 읽고 얻고 싶습니다. 내가 무엇을 의미하는지 보여주는 그림을 포함 시켰습니다. The Windows Audio Mixer

답변

0

오디오 믹서 (Sndvol)의 각 항목은 단일 오디오 세션입니다. Here's 백그라운드에서 세션이 작동하는 방식에 대해 MSDN에서 크게 읽었습니다. 방법 중 그와

, 당신은 다음과 같은 이벤트의 통지를 오디오 세션 이벤트에 가입해야합니다 :

  • 마스터 볼륨 레벨 또는 세션 서브 믹스의 음소거 상태가 변경되었습니다 .
  • 세션 서브 믹스의 하나 이상의 채널 볼륨 레벨이 변경되었습니다.
  • 세션 연결이 끊어졌습니다.
  • 세션의 활동 상태가 활성, 비활성 또는 만료로 변경되었습니다.
  • 세션에 새 그룹화 매개 변수가 할당되었습니다.
  • 세션 (아이콘 또는 표시 이름)의 사용자 인터페이스 속성이 변경되었습니다.

은 직접 here에서 복사.

코어 오디오 API는 Windows SDK의 일부이므로 실제로 코드를 호출하려면 P/Invoke를 사용해야합니다. Core Audio API에 대한 .NET 래퍼가 있다고 생각합니다. 간단한 검색으로 쉽게 찾을 수 있어야합니다.

편집 : 다음은 수행하려는 작업에 대한 좋은 시작입니다. 세션 사운드를 관리하는 코드가 포함되어 있습니다. 나는 철저하게 살펴 보지 않았기 때문에 세션 이벤트가 구현되었는지 잘 모르겠습니다.

+0

감사합니다. 잠시 동안 검색했지만,이 자료에 대한 적절한 용어를 알지 못했습니다. 이것은 시작이 될 것입니다 –

+0

@MarnovN 당신의 문제에 대한 해결책이라고 생각하시면 문제 없습니다, [대답으로 표시하십시오] (http://stackoverflow.com/help/someone-answers). – hankide