Silverlight 4 - кодирование данных PCM с микрофона - PullRequest
7 голосов
/ 19 марта 2010

Я написал базовое приложение SL4 для захвата аудиоданных с микрофона с помощью CaptureSource.Проблема в том, что это необработанный вывод PCM - что означает огромный и несжатый.

Учитывая, что мне нужно, чтобы это приложение работало исключительно в среде SL4, как я могу сжать аудиоданные PCM во что-то, что можно доставить вболее простой удаленный сервер?

По сути, мне нужно решение, которое я также могу развернуть / включить в приложение Windows Phone Series 7, а также решение, которое будет работать в среде браузера - поэтому только для решений с управляемым кодом ядумаете?

В разговоре люди предлагали, например, Speex и WMA, но я не нашел библиотек или примеров, которые бы работали без ссылки на DLL, которые не будут работать в проекте SL4.

Ответы [ 5 ]

5 голосов
/ 09 ноября 2010

Просто небольшое дополнение к Посту Джейсона :

Существует еще один порт Speex для .Net и Silverlight 4, который называется NSpeex .

4 голосов
/ 24 марта 2010

См. WavFileHelper класс в Silverlight 4 Грубые заметки: поддержка камер и микрофонов в блоге Майка Таулти (немного ниже середины страницы, но полная статья заслуживает внимания), в котором он сжимает файл PCM в WAV.

Вот еще один пример того, как при записи в WAV вы можете изменить такие значения, как Mono / Stereo, которые будут напрямую изменять размер файла WAV: Аудио-рекордер Silverlight 4 sample . И еще один, который дает более подробную информацию о записи в WAV: Создание звука с помощью MediaStreamSource в Silverlight 3 Beta

1 голос
/ 27 марта 2010

Взгляните на это . Похоже, он перенес кодировщик Speex на C # для точной проблемы, которую вы пытаетесь решить. Это доступно здесь . Speex предназначен для речи и должен работать лучше, чем wma, mp3 или другие аудиокодеки, которые предназначены для обработки музыки, если вы просто кодируете речь, что, как я полагаю, происходит из-за прослушивания с микрофона.

0 голосов
/ 17 мая 2010

Вы можете выполнить кодирование на сервере, отправив весь поток в службу WCF и выполнить кодирование с помощью Microsoft Expression Encoding SDK API.

Пожалуйста, посмотрите этот URL, который я спрашивал ранее: http://forums.silverlight.net/forums/t/181141.aspx

Привет

0 голосов
/ 22 марта 2010

Эта статья http://alvas.net/alvas.audio,articles.aspx#how-to-save-audio-to-mp3-on-silverlight о сохранении аудио на клиенте. Для отправки аудиоданных на сервер вы можете использовать, например, WebClient.

...