Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2003.01.06;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "Media";
Текущий архив: 2003.01.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.007 c
8-15165
ПВВО
2002-09-11 14:39
2003.01.06
Пожалуйста помогите!!!


4-15361
maxim2
2002-11-19 11:56
2003.01.06
У кого стоит WinNT, Win2000, WinXP подскажите


1-15157
Андрей Бочкарев
2002-12-20 22:02
2003.01.06
DOS-печать из Delphi


14-15211
Дмитрий К.К.
2002-12-04 14:28
2003.01.06
Где можно скачать список ВСЕХ тэгов HTML?


8-15161
кондратий
2002-09-16 19:13
2003.01.06
что загрузил ???





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский