0

我在 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

我如何:

  1. 在浏览器上播放此文件

  2. 提示用户下载 wav 文件?

任何人都可以帮助完成代码吗?

编辑:任何帮助表示赞赏。

4

1 回答 1

2

这是执行您想要的 IHttpHandler 的主要部分。将处理程序 URL 插入 bgsound 标记或将其通过管道传输到任何要在浏览器中播放的内容,并添加查询字符串检查“downloadFile”变量或有条件地添加 Content-Disposition: 附件;如果你想下载文件名=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();
    }
于 2009-11-12T04:23:36.867 回答