2010-11-22 8 views
1

Ich habe einen C# -Handler, der Audiodateien, die ich mit Text-to-Speech erzeugt habe, bedient. Wenn die Dateien auf die Festplatte geschrieben werden, klingen sie gut, aber wenn ich versuche, sie in einem Browser (über den Handler) mit einem Quicktime-Plugin abzuspielen, schneidet sie diese nach etwa 2 Sekunden ab.Die Verwendung eines C# -Handlers zum Hochladen von WAV-Dateien schneidet den Ton kurz ab (nur ein paar Sekunden)

im Handler ich den folgenden Code bin mit ...

context.Response.ClearContent(); 
context.Response.ClearHeaders(); 
context.Response.ContentType = "audio/x-wav"; 

context.Response.WriteFile(fileName); 
context.Response.Flush(); 

Wer weiß, was ich falsch mache?

Antwort

3

Sie sollten versuchen, die Datei als binäre Daten direkt an den Output Schreiben

context.Response.ClearContent(); 
context.Response.ClearHeaders(); 
context.Response.ContentType = "audio/x-wav"; 
byte[] byteArray = File.ReadAllBytes(fileName); 
context.Response.OutputStream.Write(byteArray, 0, byteArray.Length); 
+0

Hallo, Danke für die Anregung. Ich habe es gerade versucht und das gleiche Ergebnis erzielt. Wirklich seltsam! Ich bin mir nicht sicher, was ich sonst noch versuchen sollte. –

+1

Versuchen Sie, den Handler aus einer anderen Umgebung aufzurufen, nicht aus einem Browser mit einem Quicktime-Plugin. vielleicht ein Download-Manager von irgendeiner Art. sehen Sie, ob Sie die ganze Datei bekommen. – Variant

+1

Es funktioniert im VLC-Player durch Aufrufen der Audiodatei von der URL. Ich denke, das Problem ist, dass Quicktime nach einer gesuchten Anzahl von Bytes fragt, also muss ich das vielleicht in den OutputStream.Write-Aufruf aufnehmen und die Start-Bytes holen. –