Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Звук, графика и видео > Получение списка аудиоустройств |
Автор: Erigity 13.2.2010, 09:40 |
Как в WinXP получить список воспроизводящих звук аудиоустройств? В идеале - все те устройства, которые отображаются в Панель Управления->Звуки и аудиоустройства->Аудио->Воспроизведение звука. Понятно, что они хранятся в реестре, но найти их там, я не нашел ![]() ![]() В интернете тоже пусто :( upd:Нашел что-то похожее на правду по адресу: HKEY_CURRENT_USER\Software\Microsoft\ActiveMovie\devenum\{33D9A762-90C8-11D0-BD43-00A0C911CE86} Проверьте, кому не лень, действительно ли там воспроизводящие устройства, или это у меня совпадение ![]() upd2: Хм.. ошибочка) там записывающие девайсы) Воспроизводящие тут: HKEY_CURRENT_USER\Software\Microsoft\ActiveMovie\devenum\{E0F158E1-CB04-11D0-BD4E-00A0C911CE86} Т.е., насколько я понимаю, исключением Default DirectSound Device, Default WaveOut Device и устройств с префиксом DirectSound: получаем нужный список? ![]() Все же хотелось бы получить более общую инфу с разных машинок ![]() |
Автор: Snowy 15.2.2010, 16:19 |
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\MEDIA |
Автор: Erigity 16.2.2010, 07:44 | ||
Спасибо, но это не совсем то, что требовалось) Мне нужны были именно названия устройств вроде Logitech USB Headset, поскольку заменой ключа Playback по адресу HKEY_CURRENT_USER\Software\Microsoft\Multimedia\Sound Mapper на название устройства можно заменять текущее воспроизводящее ![]() |
Автор: Snowy 16.2.2010, 11:35 | ||
Тогда нужно немного не так.
Код выбирает только те устройства, которые можно назначить в качестве устройства вывода звука. Вот только не уверен, что замена значения в реестре будет работать в висте или 7 с ограниченными правами... |
Автор: Erigity 16.2.2010, 19:22 | ||
Спасибо ![]() Программу я для себя делал, так что насчет висты и семерки можно не волноваться, поскольку апгрейд еще не скоро, а железо уже не потянет ![]() И еще: насколько я успел заметить, в WinAPI нет функции для замены воспроизводящего устройства(по крайней мере, в mmsystem). Или я ошибаюсь? ![]() З.Ы.:
У вас очепятка. Первый параметр должен быть счетчиком цикла. ![]() |
Автор: Snowy 17.2.2010, 16:13 |
Ага. Счётчик забыл... Но, имея мозг, не сложно догадаться ![]() А что касается замены устройства - такое действие винда считает непозволительным. Программа вправе выбирать только устройство, через которе будет воспроизводить она сама. На другие программы влиять права не имеет. Поэтому такого функционала не предусмотренно. |