Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Windows Sound


Автор: Temnozor 21.10.2002, 14:47
Какими виндовыми функциями можно отключать и включать звук в системе?

Автор: Klin 24.10.2002, 16:28
Я по многим сайтам пролез, но не нашёл.

Автор: Baa 29.10.2002, 10:36
Цитата(Temnozor @ 21.10.2002, 07:47)
Какими виндовыми функциями можно отключать и включать звук в системе?

Смотря как ты отключать хочешь...
Что тебе надо?
а) устновить громкость звука в 0
б) сделать mute
в) вырубить звуковуху

Автор: Baa 29.10.2002, 10:37
Цитата(Klin @ 24.10.2002, 09:28)
Я по многим сайтам пролез, но не нашёл.

Коментарии подобного рода не уместны и расцениваются как флейм.

Автор: Temnozor 29.10.2002, 15:27
Цитата(Baa @ 29.10.2002, 04:36)
Смотря как ты отключать хочешь...
Что тебе надо?

Один мой знакомый купил пульт (я не вникал, но что-то вроде дистанционного управления компьютером, маразм в общем). На нем есть кнопка "Sound on/off". Естественно (хе-хе), нажатие на нее ничего не делает. Друг говорит, что может назначить на нее любое действие, а точнее запуск любой программы. Он просит, чтобы я написал программу, которая включала бы и выключала звук по нажатию этой кнопки (я так думаю, запускать прогу, которая проверяет включен ли звук и включает-выключает соответственно).
Так что мне надо поступить как можно проще. (Я так думаю, лучше сделать Mute).

Автор: Baa 30.10.2002, 05:48
Ну для начала посмотри:
waveOutSetVolume
waveOutGetVolume
Я предлагаю запомнить положение звука, а потом его в 0 поставить...А когда звук должен вернуться выставить его в исходное... Насчет mute'a пока ничего не нашел, если вариант выше не устроит, то могу и еще покопаться.

Автор: Baa 30.10.2002, 11:22
А еще попробуй mixerSetControlDetails
она вроде и ставит в mute звук.

Автор: Temnozor 30.10.2002, 17:43
Да, спасибо.
Именно mixerSetControlDetails.
Регулировка громкости не подходит, т.к. не факт, что звук будет регулироваться только этой программой, и запомнание громкости звука приведет к хаосу.
Последовательность вызова функций:
mixerGetNumDevs - есть ли вообще звуковуха?
mixerOpen
mixerGetLineInfo
mixerGetLineControls
mixerGetControlDetails - включен или выключен звук?
mixerSetControlDetails - переключаем
mixerClose

Автор: HexoGenus 14.11.2002, 00:18
Цитата(Temnozor @ 30.10.2002, 09:43)
Регулировка громкости не подходит, т.к. не факт, что звук будет регулироваться только этой программой, и запомнание громкости звука приведет к хаосу.

Не факт  :p
В переменной Volume храним громкость начальное значение 0
Когда нужно вкл/откл звук проверяем если текущая громкость равна 0 то обмениваем значения Volume и текущей громкости, если не 0 то сохраняем в Volume текущую громкость и сбрасываем текущую громкость в 0

В результате если при первом вызове нашей проги громкость в нуле то вкл. и выкл. громкость нет смысла так как звук все равно не будет слышен...
Если при первом вызове громкость есть то она запомнится и звук будет выключен...
Если до второго вызова никто ничего не трогал и звук в нуле то громкость будет просто возвращена на предыдущий уровень...
Если мы пришли и кто-то звук менял но вернул его в ноль то нам по барабану на что там менялась громкость мы хотим включить ту громкость которая была при нас...
Если трогали и установили звук на определенный уровень то если мы жмем кнопку значит хотим звук именно выключить но уже на данном уровне громкости...
Все варианты?????? Никакого хаоса и все работает :D

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)