|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.02.2016, 19:32 | #1 |
(aka Jin X) !RTFM!
Форумчанин
Регистрация: 14.12.2014
Сообщений: 295
|
Нестандартные ситуации при записи звука
1. Имеется вот такой проект (см. аттач), ниже приведён код.
Всё работает чётко. Но есть пара нюансов: а) Если выбран WAVE_MAPPER и происходит смена аудиоустройства по умолчанию (в настройках "Звука" Windows), прога виснет. б) Если выбран конкретный девайс и происходит его отключение, прога виснет. Зависание заключается в том, что при очередном вызове callback-функции зависает функция waveInAddBuffer, т.е. после её вызова код не выполняется (соответственно, выхода из callback-функции нет). Функции waveInStop/Reset (и даже Close) тоже зависают при нажатии на кнопку "Стоп". Что делать, как это исправить? Может, какую-то проверку нужно делать перед waveInAddBuffer? И если да, то какую и что делать после (в частности, при изменении аудиоустройства по умолчанию... я думаю, не совсем корректно будет закрывать текущее устройство и открывать новое прямо из callback-функции)? Стандартная программа "Звукозапись" спокойно переживает изменение аудиоустройства по умолчанию и даже переключает устройство на новое (т.е. продолжает запись с нового устройства). Моя же прога при изменении устройства (если убрать функцию waveInAddBuffer из callback) продолжает запись с того же устройства, что было в самом начале. Кстати, если waveInAddBuffer убрать, то waveInStop/Reset/Close работают как положено и ничего не виснет. 2. И второй вопрос (чтобы новую тему не создавать): каким образом можно отследить изменение состава аудиоустройств (например, что-то отключилось или подключилось) и аудиоустройства по умолчанию (в системных настройках)? Может, какое-то сообщение посылается всем окнам? Чтобы не проверять каждый раз вручную (например, раз в секунду). И как, кстати, определить какое из аудиоустройств установлено по умолчанию?
Делаю лабы на Asm/Delphi/C++/Python/VBA(Excel): asmlabs.ru
|
10.02.2016, 19:32 | #2 |
(aka Jin X) !RTFM!
Форумчанин
Регистрация: 14.12.2014
Сообщений: 295
|
А вот, собственно, и код, касающийся первого вопроса:
Код:
Делаю лабы на Asm/Delphi/C++/Python/VBA(Excel): asmlabs.ru
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Компонент для записи звука в .mp3 или .ogg | CheChe | Компоненты Delphi | 3 | 01.07.2015 20:14 |
Ошибка при удалении звука в OpenAL | andreil | Общие вопросы C/C++ | 1 | 27.04.2015 10:17 |
Список устройст записи звука... | demx | Мультимедиа в Delphi | 3 | 10.07.2011 00:29 |
обработка искл. ситуации при изменении масштаба | Torkve | Помощь студентам | 3 | 02.06.2010 22:36 |
Фронты при создании звука. | SilverMan39 | Мультимедиа в Delphi | 2 | 28.06.2009 14:17 |