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:添付ファイルを追加します。ダウンロードする場合は、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();
    }
于 2009-11-12T04:23:36.867 に答える