Главная страница
    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.55 MB
Время: 0.032 c
3-14894
Jdrm
2002-12-12 10:52
2003.01.06
Как можно узнать номер текущей записи?


6-15200
ДУБ
2002-10-28 15:42
2003.01.06
Отправка e-mail


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


1-15159
Студент
2002-12-19 23:45
2003.01.06
непонятный глюк


1-14999
Natali
2002-12-23 13:53
2003.01.06
команды WinAPI





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