2010-11-22 51 views
1

J'ai un gestionnaire C# qui sert les fichiers audio que j'ai générés en utilisant la synthèse vocale. Quand les fichiers sont écrits sur le disque, ils sonnent bien, mais quand j'essaie de les lire dans un navigateur (via le gestionnaire) en utilisant un plugin quicktime, cela les réduit d'environ 2 secondes.L'utilisation d'un gestionnaire C# pour diffuser des fichiers wav réduit l'audio court (quelques secondes seulement)

l'intérieur du gestionnaire, je suis en utilisant le code suivant ...

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

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

Quelqu'un sait ce que je fais mal?

Répondre

3

Vous devriez essayer d'écrire le fichier sous forme de données binaires directement au OutputStream

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

Salut, Merci pour la suggestion. Je viens d'essayer cela et obtenir le même résultat. Vraiment étrange! Je ne sais pas quoi d'autre à essayer. –

+1

Essayez d'appeler le gestionnaire depuis un environnement différent, pas un navigateur avec un plugin quicktime. peut-être un gestionnaire de téléchargement de quelque sorte. voyez si vous obtenez le fichier entier. – Variant

+1

Cela fonctionne dans le lecteur VLC en appelant le fichier audio de l'URL. Je pense que le problème est que Quicktime demandera un nombre recherché d'octets alors peut-être que je dois l'inclure dans l'appel OutputStream.Write et obtenir les octets de début. –