Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.06;
Скачать: CL | DM;

Вниз

Проблемы с установкой громкости   Найти похожие ветки 

 
Deus ©   (2002-09-16 23:32) [0]

Всем привет.

Для регулировки громкости использую компоненту TAudioMixer.
Код могу привести, но он довольно громоздок.
Проблема такова:
Если баланс установлен не по центру, то при регулировке громкости баланс начинает изменяться, пока не станет по центру.
Это происходит из-за того, что при разной величине громкости, но одинаковом балансе разница между значениями громкости каналов разная. Т.е. когда громкость L=10585, R=19923, разница=-9338. А когда L=32768, R=65535, разница=-32767.
При этом значение баланса одинаковое!
Как это побороть? Можно конечно вывести формулу зависимости, но как то это криво....


 
AlexT1000   (2002-09-18 12:20) [1]

может тебе использовать.
waveOutSetVolume(0,$FFFF);
функция Windows API.

$FF - правый канал от 0 до 255
FF - левый канал от 0 до 255

OldVolume : dword;
waveOutGetVolume(0,@OldVolume);
получить громкость


 
Deus ©   (2002-09-18 13:35) [2]

Это понятно. Проблема в том, что нужно иметь возможность регулировать все возможные каналы, а не только wave/cd/midi.
Это делается через mixerSetControlDetails. Всё регулируется ОК, проблема только с балансом.
Кстати, стандартный виндовый регулятор громкости юзает именно mixerSetControlDetails. И у него тажа проблема: если при неровном балансе и установке громкости в 0 регулятор закрыть, а потом открыть, то баланс станет ровным!
Но при простой регулировке громкости он правильно корректирует громкость каналов. Вопрос - как?


 
Deus ©   (2002-09-18 15:30) [3]

Ура! Решил проблему.
Если кому интересно:
ПЕРЕД изменением громкости получаю значение громкости каждого канала. Если один больше другого => баланс не по центру. Высчитываю процентное соотношение между каналами; Изменяю громкость канала, у которого значение было больше; В соответствии с процентым соотношением высчитываю громкость другого канала. Всё.



Страницы: 1 вся ветка

Текущий архив: 2003.01.06;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.02 c
4-15375
Pat
2002-11-17 14:06
2003.01.06
Как можно удалить ScrollBar ы у dbGrid?


8-15179
Ascan_
2002-09-18 14:30
2003.01.06
Как не зависеть от кол. цветов Descktop а ?


3-14934
Lifestyler.XL
2002-12-12 16:50
2003.01.06
Помогите! Как подружить MS FoxPro 2.6 for Dos c Delphi


1-15094
Beginner
2002-12-22 18:53
2003.01.06
Как в RichEdit вставить текст в текущую позицию курсора?


1-15062
Ozone
2002-12-25 10:18
2003.01.06
TEdit