7

我编写了一个基本的 SL4 应用程序来使用CaptureSource. 问题是,它是原始 PCM 输出——这意味着巨大且未压缩。

鉴于我需要这个应用程序纯粹在 SL4 环境中运行,我怎样才能将 PCM 音频数据压缩成可以更轻松地传送到远程服务器的东西?

本质上,我需要一个解决方案,我也可以在 Windows Phone Series 7 应用程序中部署/包含一个解决方案,以及一个可以在浏览器环境中工作的解决方案——我认为只有托管代码解决方案?

在谈话中,人们建议使用 Speex 和 WMA,但我没有找到任何不需要引用 DLL 就可以工作的库或示例,这些 DLL 在 SL4 项目中不起作用。

4

5 回答 5

5

只是对Jason 帖子的一个小补充:

.Net 和 Silverlight 4 的另一个 Speex 端口称为NSpeex

于 2010-11-09T07:07:33.763 回答
4

请参阅Mike Taulty 博客上Silverlight 4 Rough Notes: Camera and Microphone SupportWavFileHelper中的课程(略低于页面中间,但完整的文章值得一读),其中他将 PCM 文件压缩为 WAV。

这是另一个在写入 WAV 时可以更改值(例如 Mono/Stereo)的示例,这将直接更改 WAV 文件的大小:Audio recorder Silverlight 4 sample。还有一个提供有关写入 WAV 的更多详细信息:Creating Sound using MediaStreamSource in Silverlight 3 Beta

于 2010-03-24T17:35:08.763 回答
1

看看这个。看起来他已将 Speex 编码器移植到 C# 以解决您要解决的确切问题。它可以在这里找到。Speex 专为语音而设计,如果您只是对语音进行编码,我认为它应该比 wma、mp3 或其他旨在处理音乐的音频编解码器表现更好,因为您是从麦克风中抓取的。

于 2010-03-26T21:19:52.920 回答
0

这篇文章http://alvas.net/alvas.audio,articles.aspx#how-to-save-audio-to-mp3-on-silverlight关于在客户端保存音频。例如,要将音频数据发送到服务器,您可以使用 WebClient。

于 2010-03-22T20:40:16.447 回答
-2

您可以通过服务器进行编码,将所有流发送到 WCF 服务并通过 Microsoft Expression Encoding SDK API 进行编码。

请看我之前问过的这个网址: http ://forums.silverlight.net/forums/t/181141.aspx

问候

于 2010-05-17T11:33:22.343 回答