Я записал основное приложение SL4 для получения аудиоданных от использования микрофона CaptureSource
. Проблема, это - необработанный вывод PCM - что означает огромный и несжатый.
Учитывая, что мне нужно это приложение для выполнения просто в среде SL4, как я могу сжать аудиоданные PCM во что-то, что может быть поставлено удаленному серверу более легко?
По существу мне нужно решение, которое я могу также развертывать/включать в приложении Серии 7 Windows Phone, а также том, которое будет работать в среде браузера - так решения для управляемого кода только, я думаю?
В разговоре люди предложили Speex и WMA, например, но я не нашел библиотек или примеров, которые работают, не требуя ссылки на DLL, который не будет работать в проекте SL4.
Пожалуйста, посмотрите класс WavFileHelper
в Silverlight 4 Rough Notes: Camera and Microphone Support в блоге Майка Талти (чуть ниже середины страницы, но полная статья того стоит), в котором он сжимает PCM-файл в WAV.
Вот еще один пример того, что при записи в WAV вы можете изменять такие значения, как Mono/Stereo, что напрямую изменит размер WAV-файла: Audio recorder Silverlight 4 sample. И еще один, в котором более подробно рассказывается о записи в WAV: Creating Sound using MediaStreamSource in Silverlight 3 Beta
Эта статья http://alvas.net/alvas.audio,articles.aspx#how-to-save-audio-to-mp3-on-silverlight о сохранении аудио на клиенте. Например, для отправки аудиоданных на сервер вы можете использовать WebClient.
Взгляните на это . Похоже, он перенес кодировщик Speex на C # именно для той проблемы, которую вы пытаетесь решить. Он доступен здесь . Speex разработан для речи и должен работать лучше, чем wma, mp3 или другие аудиокодеки, которые предназначены для обработки музыки, если вы просто кодируете речь, что я предполагаю, поскольку вы захватываете звук с микрофона.
Вы можете выполнять кодирование через сервер, отправляя весь поток в службу WCF и выполняя кодирование через Microsoft Expression Encoding SDK API.
Пожалуйста, посмотрите этот URL, который я спрашивал раньше: http://forums.silverlight.net/forums/t/181141.aspx
С уважением