enton |
Отправлено: 26.02.2007, 10:32 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 44
|
откопал такую функцию
CODE |
DWORD AVolume=0xFFFF; /*Звук от 0x0000 (минимум) до 0xFFFF (максимум)
if(waveOutSetVolume((void*)WAVE_MAPPER,AVolume) == MMSYSERR_NOERROR)
{
// тут что-то делаем при успешном изменении громкости
}
|
не подскажите как сделать так что бы ето все заработало? |
|
Termi_uc |
Отправлено: 26.02.2007, 17:08 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 61
|
Смотри здесь:
Multimedia Functions
В проге по нажатию одной кнопки звук прибавляется, а по нажатию на другую — убавляется.
Вот пример убавления:
CODE | DWORD Valume;
waveOutGetVolume(0, &Valume);
waveOutSetVolume(0, MAKELONG(Valume — 1000, Valume — 1000)); |
Функция объявлена в заголовочном файле mmsystem.h
|
|
enton |
Отправлено: 01.03.2007, 19:57 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 44
|
все заработало.
я так понимаю Valume — 1000 2 раза задается из за того что 2 канала?
|
|
enton |
Отправлено: 01.03.2007, 21:03 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 44
|
кстати замечено что в некоторых случаях двигается не громкоть а баланс на ней! |
|
Rius |
Отправлено: 01.03.2007, 22:07 |
|
Мастер участка
Группа: Участник
Сообщений: 321
|
это число указывает громкость сразу обоих каналов, поэтому при некоторых значениях и баланс меняется (разная громкость каналов)
там, помнится, 0xffff0000 — один канал (старшее слово), а 0x0000ffff — другой (младшее слово у dword).
|
|
enton |
Отправлено: 02.03.2007, 08:58 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 44
|
я сделал вот так
CODE |
DWORD Volume;
Volume = MAKELONG(Volume + 0x100, Volume + 0x100);
if ((int) Volume < 0)
Volume = 0;
| |
|