Я знаю способ сделать это, хотя я не уверен, что это лучший способ сделать это: это не обязательно будет легко, если вы не знакомы с DirectShow, так как это требует от вас изучения многих аспектов технология. Вы можете использовать DirectShow для настройки медиа-конвейера, который выглядит примерно так:
Источник захвата -> SampleGrabber -> Audio Renderer
Это простой график воспроизведения. В граббере образцов вы можете перехватывать образцы, когда они проходят через конвейер. Вот, например, вы можете обработать образец, чтобы увидеть, является ли это тишиной или нет. Когда у вас все получится, попробуйте настроить график, который будет выглядеть примерно так
Capture Source -> SampleGrabber -> mp3-кодировщик -> filewriter
Не уверен насчет файлового автора (если это работает для данных в формате mp3): больше домашней работы для вас.
Затем, используя GMFBridge , вы можете настроить несколько графиков.
1) Источник захвата -> SampleGrabber -> GMFBridgeSink
2) GMFBridgeSource -> кодировщик mp3 -> автор файлов
3) GMFBridgeSource -> рендерер (или что-то)
GMFBridge позволяет динамически переключаться между графиками во время воспроизведения.
Итак, 1) обычно будет подключен к 3), пока вы не обнаружите определенный уровень звука, затем мосты к 2). Как только уровень звука упадет до 3).
Я не знаю, является ли это лучшим решением, но это решение или отправная точка. Возможно, кто-то еще может предложить другой путь. Удачи.