在我的MVC应用程序中,我添加了Silverlight录音机。该记录器将音频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字符串发送到 Controller :
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中获取此数据?

最佳答案

Silverlight正在客户端运行,您的MVC代码在服务器端运行,因此在当前情况下这是行不通的。

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

看一下使用WCFWebAPI来启动并运行它。

如果您真的想变得复杂,您还可以使用SignalR之类的东西来让客户端/服务器(本质上就是这种设置)彼此之间进行通信并通过该接口(interface)发送数据。虽然这似乎有点矫kill过正。

关于c# - 如何在Silverlight应用程序中将byte []另存为WAV文件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21240586/

10-11 14:27