Страница: 1 |
Вопрос: две звуковухи | Добавлено: 15.09.08 15:07 |
Автор вопроса: ![]() |
Привет. Суть проблемы следующая: имеется две звуковушки(одна интегрированная), нужно посредством скрипта отправить на одну 1.wav, на другую 2.wav. Т.е. в реальности это выглядит как две, скажем, кнопки. И две пары наушников. Нажимая на одну, одна мелодия идет на одни наушники. Нажимая на другую - соответственно на вторые и уже другая мелодия. Я как человек незнакомый с VBA в принципе, научился только проигрываться wav'ы посредством winmm.lib и PlaySound'а. Буду рад любому совету. |
Ответы | Всего ответов: 10 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ICQ: 308-534-060 Вопросов: 20 Ответов: 1860 |
Web-сайт: Профиль | Цитата | #1 | Добавлено: 18.09.08 11:27 |
Ты так уверен, что железячная конфигурация тебе позволит эту причуду? Ответ: в рамках VBA это неразрешимая задача в принципе. |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 6 |
Профиль | Цитата | #2 | Добавлено: 18.09.08 11:42 |
Причем тут железо. Есть АПИ, есть дескрипторы устройств. Значит к ним можно обратиться, используя функции мультимедийных библиотек. Я все еще мучаюсь с VBA, как с языком, но вот например есть функция - waveOutOpen. The waveOutOpen function opens the given waveform-audio output device for playback.
MMRESULT waveOutOpen( LPHWAVEOUT phwo, UINT_PTR uDeviceID, LPWAVEFORMATEX pwfx, ![]() ![]() ![]() ); uDeviceID Identifier of the waveform-audio output device to open. It can be either a device identifier or a handle of an open waveform-audio input device. You can use the following flag instead of a device identifier. Т.е. это же дескриптор устройства, я правильно понял? Так ведь можно тогда не указывать автовыбор WAVE_MAPPER, а явно, какой девайс нужен. Разные кнопки - разные значения аргументов. |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 6 |
Профиль | Цитата | #3 | Добавлено: 18.09.08 11:44 |
По крайней мере на си тоже самое пишется за минуты. |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ICQ: 308-534-060 Вопросов: 20 Ответов: 1860 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 19.09.08 12:21 |
winmm.dll, ясно. У меня есть сомнения самой возможности сущесвования в одной системе двух и более АКТИВНЫХ аудиоустройств. есть мнение, что одновременно система не даст работать обоим устройствам. Или нет (докажите)? |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 6 |
Профиль | Цитата | #5 | Добавлено: 19.09.08 12:46 |
Технически - это возможно. Ведь можно же к примеру два модема подключить или монитора? На практике же в настройках звука всегда выбирается один из двух доступных на системе драйверов. Но это про глобальный, системный, вывод. В отдельных же, продвинутых, приложениях можно напрямую указать, какое устройство использовать. Например WinAmp -> настройки -> плагины -> вывод -> directsound. Ставим два проигрывателя, в каждом указываем свое устройство вывода и два человека слушают одновременно разную музыку. Правда с возможными проблемами. Но ведь работает. По аналогии, в задаче - это будут две кнопки с различными файлами(mmioOpen) и устройствами на вывод(waveOutOpen) Разобрался вроде с VBA, но не работает)) Продолжаю ковыряться.. |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 6 |
Профиль | Цитата | #6 | Добавлено: 19.09.08 13:32 |
Вывел звук, осталось найти вторые наушники и вынесу вердикт) |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 6 |
Профиль | Цитата | #7 | Добавлено: 19.09.08 13:35 |
Пардон, не знаю как тут редактировать сообщения. В общем все работает. |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ICQ: 308-534-060 Вопросов: 20 Ответов: 1860 |
Web-сайт: Профиль | Цитата | #8 | Добавлено: 19.09.08 14:21 |
Молодец, что разобрался с нетривиальным вопросом. Код на VBA или на Си здесь возможно вложить? Я про определение аудиоустройств и их идентификаторов. |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 6 |
Профиль | Цитата | #9 | Добавлено: 19.09.08 15:34 |
Вызывать соответственно через Init deviceID. Нумерация с 0. Если звуковухи две штуки, то соответственно диапазон значений 0-1. Комментарии побились, извиняюсь, нет времени поправить, возможно попозже. Как определить, какой идентификатор соответствует какому устройству, незнаю, не стояло такой задачи. Я отловил опытным путем. |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ICQ: 308-534-060 Вопросов: 20 Ответов: 1860 |
Web-сайт: Профиль | Цитата | #10 | Добавлено: 22.09.08 10:35 |
Спасибо. |
Страница: 1 |
|