我在ASP.NET应用程序(非Silverlight)中有以下代码片段
string sText = "Test text";
SpeechSynthesizer ss = new SpeechSynthesizer();
MemoryStream ms = new MemoryStream();
ss.SetOutputToWaveStream(ms);
ss.Speak(sText);
//Need to send the ms Memory stream to the user for listening/downloadin
我如何:
在浏览器上播放此文件
提示用户下载wav文件?
任何人都可以帮助完成代码吗?
编辑:感谢任何帮助。
答案 0 :(得分:2)
这是IHttpHandler的主要功能,可以满足您的需求。将处理程序URL插入bgsound标记或将其传递给浏览器中的任何内容,并为“downloadFile”var或其他内容添加查询字符串检查以有条件地添加Content-Disposition:attachment; filename = whatever.wav标头,如果你想下载。不需要中间文件(尽管如果SetOutputToWaveStream没有在另一个线程上运行,那么它就会出现故障。)
public void ProcessRequest(HttpContext context)
{
MemoryStream ms = new MemoryStream();
context.Response.ContentType = "application/wav";
Thread t = new Thread(() =>
{
SpeechSynthesizer ss = new SpeechSynthesizer();
ss.SetOutputToWaveStream(ms);
ss.Speak("hi mom");
});
t.Start();
t.Join();
ms.Position = 0;
ms.WriteTo(context.Response.OutputStream);
context.Response.End();
}