Главная страница
    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.008 c
14-15312
borlandcpp
2002-12-18 12:28
2003.01.06
Plese help me now!


1-15101
reticon
2002-12-20 13:20
2003.01.06
сравнение двух нетипизированных файлов


3-14902
Matolch
2002-12-12 21:48
2003.01.06
Динамическое создание таблицы.


1-15131
Азеев Анрей
2002-12-22 23:09
2003.01.06
Перенаправление вывода внешнего консольного приложения


1-15144
Fantom
2002-12-23 15:54
2003.01.06
проблемы с rich edit





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский