Как SndVol може да промени нивото на звука на дадена аудио сесия?

Пиша собствен API, за да изпълня някои от функциите на системната помощна програма SndVol. Бих искал част от този API да бъде възможността за задаване на нивото на звука на даден аудио сесия.

SndVol показва плъзгач в панела „Устройство“, който потребителят може да използва, за да промени основното ниво на звука на аудио устройството, както и плъзгач за всяка аудио сесия (в панела „Приложения“), който променя нивото на звука на сесията :

Екранна снимка на SndVol Volume Mixer

Ако плъзна манипулатора на плъзгача за една от аудио сесиите, тогава SndVol може да промени нивото на звука на аудио сесията. Как става това?

Мислех, че е възможно с помощта на Core Audio на Windows Vista API, но срещнах проблема, че въпреки че мога да повторя аудио сесии на устройство, използвайки IAudioSessionEnumerator, IAudioSessionEnumerator ми дава достъп само до IAudioSessionControl обекти, но имам нужда от IAudioClient обект за получаване на ISimpleAudioVolume обект, който мога да използвам, за да задам нивото на звука на аудио сесията. Възможно ли е да получите IAudioClient обект, свързан с IAudioSessionControl обект?


person Joseph Trebbien    schedule 20.05.2011    source източник


Отговори (2)


Ако извикате QueryInterface на интерфейса IAudioSessionControl, често можете да получите достъп до ISimpleAudioVolume.

person ReinstateMonica Larry Osterman    schedule 21.05.2011
comment
Господи, защо всичко на Microsoft трябва да е толкова объркано...? - person hauzer; 08.04.2014
comment
@hauzer Понякога това е начин да се обезкуражи преминаването към различни платформи поради инвестирано време в изучаване на API и нежелание да се учи отново другаде; понякога е просто трудно да се създадат прости конвенции за именуване на функции или методи, особено когато се работи с ООП, който може да има голям обектен модел. - person Eugene C.; 21.04.2014
comment
Не толкова заплетен, колкото недокументиран. Как да разбера, че те често са еднакви? - person chowey; 21.03.2015

Лари Остерман, който работи за Microsoft и е работил върху новите неща за аудио API, написа поредица от публикации в блогове за новите аудио функции на Vista/Win7. Ето няколко връзки, които може да помогнат:

Бърз преглед на новите примери за мултимедия/аудио SDK на Windows 7 - Примерът показва контрол на силата на звука за всяко приложение

Контрол на силата на звука във Vista – Описва за всяко приложение контрол на звука и други нови аудио функции, които бяха добавени във Vista/Win7

Има индекс от дясната страна на страницата; можете да разгледате Аудио маркирани елементи за някои други статии, които може помогне.

person Ken White    schedule 21.05.2011