如何在silverlight应用程序中将byte []保存为wav文件?

时间:2014-01-20 17:37:06

标签: c# file silverlight audio save

在我的MVC应用程序中,我添加了一个Silverlight Audio Recorder。此刻录机将音频using System.Windows.Media;命名空间记录为代表wav文件的byte[]

现在我需要将此byte[]保存为本地磁盘(服务器)上的.wav文件。

到目前为止,我已经尝试了以下内容:

byte[] audioData; // Here I contain my data     

System.IO.File.WriteAllBytes(@"C:\Temp\yourfile.wav", this.audioData); // Doesn't work

BinaryWriter Writer = null;
string name = @"C:\Temp\yourfile.wav";

try
{
      Writer = new BinaryWriter(File.OpenWrite(name));

      Writer.Write(this.audioData);
      Writer.Flush();
      Writer.Close();
 }
 catch
 {
      ...
 }

但没有什么对我有用......我做错了什么?

确定。假设我可以将我的数据作为json字符串发送到控制器:

WebClient net = new WebClient();
string data = UTF8Encoding.UTF8.GetString(this.audioData, 0, this.audioData.Length);

net.UploadStringAsync(new Uri("/Home/SaveFile", UriKind.Relative), data);

我如何在MVC Action中获取此数据?

1 个答案:

答案 0 :(得分:0)

Silverlight正在运行客户端,你的MVC代码是服务器端的,所以这不适用于它的当前形式。

我建议使用网络服务将数据发送回服务器进行保存。

请查看使用WCFWebAPI启动并运行它。

如果你真的想要复杂,你也可以使用类似SignalR的东西来让客户端/服务器(这实际上就是这个设置)发送相互通信并通过它发送数据那。虽然这似乎是过度杀伤。