2010-12-30 10 views
1

Ich versuche, eine WAV-Datei zu spielen, die ich dynamisch in einem HTTP-Handler erzeugen und die NavigateUrl Eigenschaft HyperLink Steuerungseinstellung:C#/ASP.NET - Wiedergabe dynamisch generierte WAV-Datei auf Client klicken

<asp:HyperLink runat="server" NavigateUrl="~/ServeAudio.ashx" Text="Play Sound" ImageUrl="~/images/speaker_louder_32.png" 
         ToolTip="Play Sound"></asp:HyperLink> 

Aber wenn ich auf diesen Link klicke, öffnet sich Windows Media Player - das will ich nicht. Ich möchte nur den Sound spielen.

Ich habe auch versucht, einige der jQuery-Plugins und sie scheinen zu funktionieren, wenn ich eine feste URL zu einer WAV-Datei haben, aber sie funktionieren nicht, wenn ich die URL zu meinem HTTP-Handler festlegen.

Irgendwelche Ideen? Danke im Voraus.

Antwort

3

Verwenden Sie einen HTTP-Analyzer wie Fiddler oder Browser-Entwicklungstools wie Firebug (oder Dev-Tools auf IE), um zu sehen, welche HTTP-Header gesendet werden, wenn Sie direkt auf die WAV-Datei zugreifen.

Dann ahmen Sie die HTTP-Header von Ihrem Handler nach, indem Sie sie mit HttpResponse.AppendHeader Method setzen. Möglicherweise etwas wie folgt aus:

Response.AppendHeader("Content-Type", "audio/x-wav"); 

Ein weiterer Trick, die helfen könnte, ist die URL zu fertigen, so sieht es aus wie eine Datei (Sie sollten dies nicht benötigen, wenn Sie die entsprechenden HTTP-Header verwenden):

"~/ServeAudio.ashx/my.wav" 
+1

Danke Maxwell! Ihr zweiter Vorschlag hat es geschafft! Ich habe bereits die Inhaltsheader hinzugefügt, aber es funktionierte immer noch nicht. Aber nur eine .WAV-Datei in der URL zu fälschen scheint zu funktionieren. Für jeden, der interessiert ist - ich habe dieses jQuery-Plugin verwendet, um die WAV-Datei zu spielen: http://plugins.jquery.com/project/sound_plugin – Ambuj

Verwandte Themen