在我的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服务将数据发送回服务器以进行保存。
看一下使用WCF或WebAPI来启动并运行它。
如果您真的想变得复杂,您还可以使用SignalR之类的东西来让客户端/服务器(本质上就是这种设置)彼此之间进行通信并通过该接口(interface)发送数据。虽然这似乎有点矫kill过正。
关于c# - 如何在Silverlight应用程序中将byte []另存为WAV文件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21240586/