Вопрос

Как можно было бы программно записать звук?Я внедряю приложение, которое транслирует в режиме реального времени рабочий стол в сети.Видео-часть закончена.Мне нужно реализовать звуковую часть.Мне нужен способ получить PCM-данные со звуковой карты для передачи в мой кодировщик (реализован с использованием формата Windows Media).

Я думаю, что ответ связан с функциями openMixer (), waveInOpen () в Win32 API, но я не уверен точно, что мне следует делать.

Как открыть нужный канал и как считывать с него PCM-данные?

Заранее благодарю.

Это было полезно?

Решение

Я не думаю, что есть прямой способ сделать это с помощью операционной системы - это функция, которая может присутствовать (а может и не присутствовать) на звуковой карте.Некоторые звуковые карты имеют циклический интерфейс - Creative называет это "То, что вы слышите".Вы просто выбираете его в качестве входного сигнала, а не микрофона, и записываете с него, используя обычную функцию waveInOpen (), о которой вы уже знаете.

Если звуковая карта не имеет этой функции, то я думаю, что вам не повезло, кроме как сделать что-то безумное, например, создать свой собственный драйвер.Или вы могли бы убедить своих пользователей подключить кабель от выхода динамика к линейному входу :)

Другие советы

Новые API-интерфейсы Windows Vista Core Audio поддерживают это явно (так называемая циклическая запись), поэтому, если вы можете работать с приложением только для Vista, это правильный путь.

Смотрите на Циклическая запись в статье на MSDN приведены инструкции о том, как это сделать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top