我编写了一个基本的SL4应用程序,使用CaptureSource
从麦克风中捕获音频数据。问题是,它是原始PCM输出 - 这意味着巨大且未压缩。
鉴于我需要这个应用程序纯粹在SL4环境中运行,我如何将PCM音频数据压缩成可以更容易地传送到远程服务器的东西?
基本上我需要一个可以部署/包含在Windows Phone Series 7应用程序中的解决方案,以及一个可以在浏览器环境中运行的解决方案 - 我认为只有托管代码解决方案?
在对话中,人们已经建议使用Speex和WMA,但是我没有找到任何可以工作的库或示例而不需要引用在SL4项目中不起作用的DLL。
答案 0 :(得分:5)
只是Jason's post的一小部分内容:
还有一个名为NSpeex的.Net和Silverlight 4的速度端口。
答案 1 :(得分:4)
请参阅Mike Taulty博客Silverlight 4 Rough Notes: Camera and Microphone Support中的WavFileHelper
课程(略低于页面中间部分,但完整的文章是值得的),其中他将PCM文件压缩为WAV。
这是另一个写入WAV的例子,您可以更改Mono / Stereo等值,这将直接改变WAV文件的大小:Audio recorder Silverlight 4 sample。还有一个提供了有关写入WAV的更多详细信息:Creating Sound using MediaStreamSource in Silverlight 3 Beta
答案 2 :(得分:1)
看看this。看起来他已将Speex编码器移植到C#,以解决您要解决的确切问题。它可用here。 Speex专为语音而设计,应该比wma,mp3或其他用于处理音乐的音频编解码器表现更好,如果你只是编码语音,我认为这是因为你从麦克风中抓取它。
答案 3 :(得分:0)
本文http://alvas.net/alvas.audio,articles.aspx#how-to-save-audio-to-mp3-on-silverlight关于在客户端保存音频。要将音频数据发送到服务器,您可以使用WebClient,例如。
答案 4 :(得分:-2)
您可以通过将所有流发送到WCF服务并通过Microsoft Expression Encoding SDK API进行编码来对服务器进行编码。
请看,我之前询问的这个网址: http://forums.silverlight.net/forums/t/181141.aspx
此致