2010-10-13 2 views
4

Я ищу для создания приложения, которое позволит мне записывать с моего микрофона и воспроизводить запись через другие ПК. На этом этапе, однако, я просто хотел бы воспроизвести его на своем собственном компьютере, чтобы я мог заставить его работать.Воспроизведение аудио в реальном времени с микрофона. C#

Я смотрел на NAudio последние несколько часов, и похоже, что он может помочь мне в достижении этой цели.

Мне просто интересно, есть ли у кого-нибудь опыт с этим, и если это вообще возможно?

Спасибо, Стюарт

+0

Вы хотите аудио в реальном времени или просто хотите воспроизвести записанный файл на другом компьютере? –

+0

Я хотел бы воспроизвести аудио в реальном времени. Поэтому, когда я говорю в микрофон, я слышу себя как можно быстрее. – stuartmclark

ответ

2

Существует пример проекта по CodeProject делает это:
http://www.codeproject.com/KB/cs/Streaming_wave_audio.aspx
Я не знаю, как низко латентность.

В качестве кодека я бы рекомендовал Speex (по крайней мере, для речи). Он бесплатный, с открытым исходным кодом и предлагает низкую задержку и низкую пропускную способность.

+0

Это большое спасибо, я просто пытаюсь разбить это приложение на два отдельных приложения: один для трансляции и один для прослушивания, но пока не повезло. У вас есть идеи о том, как я могу это сделать. Я создал два приложения, которые, хотя я бы работал, используя этот код, но когда я начинаю записывать/слушать, кажется, что они не видят друг друга, и ничего не может пройти. – stuartmclark

+0

Не знаю. Я никогда не заглядывал в сеть. Я использовал обертку только над WaveIn/WaveOut. – CodesInChaos

0

Это можно сделать, но вы вряд ли получите небольшую задержку с WaveIn/WaveOut (возможно, с WASAPI лучшими результатами). Вы можете использовать BufferedWaveProvider (в последнем исходном коде) для хранения звука, записываемого с микрофона, и подачи вывода на звуковую карту.

+0

Итак, если я правильно вас понимаю, я буду записывать и сохранять в файл/буфер и выводить из этого же буфера в колонки? Почти в то же время? Извините, если это звучит сложнее, чем я, но я начинаю начинать с разработки аудиопрограмм. – stuartmclark

+0

Правильно, будирование записанного аудио в памяти готово к возврату на звуковую карту для игры как можно скорее. Посмотрите на BufferedWaveProvider (добавлена ​​ссылка выше) –

0

NAudio отлично подходит как отправная точка для захвата и воспроизведения звука, но поскольку Марк указал, что задержка может быть проблемой.

Если вы выполните следующий шаг и хотите отправить аудиоданные по сети, вам понадобится кодек для сжатия данных, поскольку PCM или WAV несжаты, а для голоса вам потребуется небольшая часть полосы пропускания, необходимой для WAV , Поскольку вы работаете с C#, имеется порт C# для Speex, который называется NSpeex, который может стоить взглянуть на него.

Смежные вопросы