У меня в настоящее время стоит задача слушать вход звуковой карты. Если уровень сигнала превысит некоторое значение — начинать запись. Если окажется ниже — останавливать.
Объект для записи в формате PCM я написал.
Теперь мне нужно в сжатые сроки реализовать определение уровеня входного сигнала (чтобы опрашивать его по таймеру).
Буду Вам признателен за содействие.
С уважением.
Aleks Allock
Re: Как определить уровень сигнала на входе звуковой карты?
Здравствуйте, Allock, Вы писали:
A>Добрый день!
A>У меня в настоящее время стоит задача слушать вход звуковой карты. Если уровень сигнала превысит некоторое значение — начинать запись. Если окажется ниже — останавливать.
A>Объект для записи в формате PCM я написал. A>Теперь мне нужно в сжатые сроки реализовать определение уровеня входного сигнала (чтобы опрашивать его по таймеру).
A>Буду Вам признателен за содействие.
A>С уважением. A>Aleks Allock
Здравствуйте, Allock, Вы писали:
A>Я написал объект, который не завязан на MCI напрямую, поэтому с waveIn не разбирался...
Ну я пока не слышал о методах, позволяющих узнать громкость звука, не просмотрев его составляющие семплы.
Да и вроде в API таких функций пока не придумали. Так что придётся звук записывать. Причём, если не так важна точность, то можно делать это с очень низкой дискретизацией. Если важен сам факт наличия звука, то и записывать звук можно не постоянно, а, например, раз в секунду.
Re[4]: Как определить уровень сигнала на входе звуковой карт
От:
Аноним
Дата:
17.03.04 04:30
Оценка:
Я взят TMediaPlayer.
Обернул его, сделал для Create параметром формат файла (например PCM-22кГц-8бит), создаю временный пустой файл в этом формате, беру его МедиаПлэйером, начинаю писать, в конце записи меняю имя файла на нужное, сохраняю... Все.
Предельно упрощенно.
Но раньше от меня требовалось быстренько дать только 4 функции (Record, Pause, Resume, Stop). Их вызывали снаружи внешней проограммой.
Теперь решили внедрить все в мой объект (как бы диктофон из него сделать).
Теперь мне нужно при Create, начинать слушать Line in карты и заканчивать при Free.
Я пробовал миксер. Не получилось.
Пробовал взять TMediaPlayer.deviceID и посмотреть на него, как в МСДН рекомендуют: