Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Работа с микшерными устройствами

1.9K
30 декабря 2003 года
AviDen
91 / / 26.12.2003
Народ, я тут пытался как-то создать свой аналог Регулятора громкости (ну, чтобы показывал установленные звуковые устройства, по ним - аудиоканалы и позволял последние изменять, "мутировать", устанавливать громкость и пр).

Для этого юзал стандартные функции из набора mixer-API. И гдей-то у меня закралась гадкая ошибка (вот только не надо щас приколов про глюк в ДНК).

Подход был следующий (схематично):
1)получить количество устройств (mixerGetNumDevs)
2) открываем по очереди каждое из устройств (mixerOpen)
3) получаем параметры микшерного устройства (mixerGetDevCaps)
4) По каждой из аудио-линий получаем ее параметры (mixerGetLineInfo) и параметры ее управляющих элементов (mixerGetLineControls )
5) По каждому управляющему элементу можем получить или установить его значение (mixerGetControlDetails/mixerSetControlDetails).

Короче, все практически работает, только количество найденных прогой звуковых каналов явно не соответствует действительности. Ну, например, в стандартном Регуляторе я могу поменять с десяток различных видов каналов (общая громкость, Wave-audio, CD-audio и куча прочего). А мне винда говорит только про то, что у меня всего пара каналов. Я пробовал на разных виндах (то есть, и та и другоая XP, но разных редакций), и разные звуковухи и на других компах тестил. Видать, баг в самом моем понимании всей этой микшерной катавасии.

Я не спрашиваю, где у меня глюк, просто, может, подскажете, как еще можно это все сделать - может, переделаю все заново по другой схеме - глядишь, и прояснится чего. Или может кто делал уже такое - киньте исходники желательно на Delphi или можно на C/Cpp.
9.3K
14 ноября 2004 года
genirator
2 / / 14.11.2004
Цитата:
Originally posted by AviDen
Народ, я тут пытался как-то создать свой аналог Регулятора громкости (ну, чтобы показывал установленные звуковые устройства, по ним - аудиоканалы и позволял последние изменять, "мутировать", устанавливать громкость и пр).

Для этого юзал стандартные функции из набора mixer-API. И гдей-то у меня закралась гадкая ошибка (вот только не надо щас приколов про глюк в ДНК).

Подход был следующий (схематично):
1)получить количество устройств (mixerGetNumDevs)
2) открываем по очереди каждое из устройств (mixerOpen)
3) получаем параметры микшерного устройства (mixerGetDevCaps)
4) По каждой из аудио-линий получаем ее параметры (mixerGetLineInfo) и параметры ее управляющих элементов (mixerGetLineControls )
5) По каждому управляющему элементу можем получить или установить его значение (mixerGetControlDetails/mixerSetControlDetails).

Короче, все практически работает, только количество найденных прогой звуковых каналов явно не соответствует действительности. Ну, например, в стандартном Регуляторе я могу поменять с десяток различных видов каналов (общая громкость, Wave-audio, CD-audio и куча прочего). А мне винда говорит только про то, что у меня всего пара каналов. Я пробовал на разных виндах (то есть, и та и другоая XP, но разных редакций), и разные звуковухи и на других компах тестил. Видать, баг в самом моем понимании всей этой микшерной катавасии.

Я не спрашиваю, где у меня глюк, просто, может, подскажете, как еще можно это все сделать - может, переделаю все заново по другой схеме - глядишь, и прояснится чего. Или может кто делал уже такое - киньте исходники желательно на Delphi или можно на C/Cpp.

9.3K
14 ноября 2004 года
genirator
2 / / 14.11.2004
Привет! Я Сергей , мне нужна помощ в программировании микшера ( смесителя звука ).
Подробней , нужны рабочии процедурки на Delphi5-6 ,
"без лишних понтов великих программистов" ,
тоесть нужна коротко сама суть:
1) снять стерео сигнал с микшера ;
2) регулировать уровень записи с микшера ;
3) после , поместить этот сигнал в массив ;
4) затем , поместить массив "MCISendString(play..."
на воспроизведение;
5) далее , регулировать урровень громкости
воспроизведения ;
6) регулировать низкие и высокие частоты при
воспроизведении ;

P.S. : Пожалуйсто в отдельные процедурки закоментированные для использования в программе на Delphi5-6.
С Уважением Сергей.
Цитата:
Originally posted by genirator

18K
24 апреля 2006 года
yura24
1 / / 24.04.2006
Цитата:
Originally posted by AviDen
Народ, я тут пытался как-то создать свой аналог Регулятора громкости (ну, чтобы показывал установленные звуковые устройства, по ним - аудиоканалы и позволял последние изменять, "мутировать", устанавливать громкость и пр).

Для этого юзал стандартные функции из набора mixer-API. И гдей-то у меня закралась гадкая ошибка (вот только не надо щас приколов про глюк в ДНК).

Подход был следующий (схематично):
1)получить количество устройств (mixerGetNumDevs)
2) открываем по очереди каждое из устройств (mixerOpen)
3) получаем параметры микшерного устройства (mixerGetDevCaps)
4) По каждой из аудио-линий получаем ее параметры (mixerGetLineInfo) и параметры ее управляющих элементов (mixerGetLineControls )
5) По каждому управляющему элементу можем получить или установить его значение (mixerGetControlDetails/mixerSetControlDetails).

Короче, все практически работает, только количество найденных прогой звуковых каналов явно не соответствует действительности. Ну, например, в стандартном Регуляторе я могу поменять с десяток различных видов каналов (общая громкость, Wave-audio, CD-audio и куча прочего). А мне винда говорит только про то, что у меня всего пара каналов. Я пробовал на разных виндах (то есть, и та и другоая XP, но разных редакций), и разные звуковухи и на других компах тестил. Видать, баг в самом моем понимании всей этой микшерной катавасии.

Я не спрашиваю, где у меня глюк, просто, может, подскажете, как еще можно это все сделать - может, переделаю все заново по другой схеме - глядишь, и прояснится чего. Или может кто делал уже такое - киньте исходники желательно на Delphi или можно на C/Cpp.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог