我是 C# 的新手,我似乎找不到我的代码的问题。我正在尝试从 Google Translate text-to-speech 网站获取音频文件并播放它,但我不断收到错误消息:
An unhandled exception of type 'System.InvalidOperationException' occurred in System.dll
Additional information: The wave header is corrupt.
有人可以让我知道我的代码中有什么问题吗?方法是:
public static void PlayWord(string Query)
{
string GoogleTranslateURL = "http://translate.google.com/translate_tts?tl=en";
System.Net.WebRequest req = System.Net.WebRequest.Create(GoogleTranslateURL + (string.IsNullOrEmpty(Query) ? "" : "&q=" + Query));
using (var ms = new MemoryStream())
{
using (Stream webStream = req.GetResponse().GetResponseStream())
{
var buffer = new byte[4096];
int read;
while (webStream != null && (read = webStream.Read(buffer, 0, buffer.Length)) > 0)
ms.Write(buffer, 0, read);
}
using (SoundPlayer player = new SoundPlayer(ms))
{
if (ms.CanSeek) ms.Seek(0, System.IO.SeekOrigin.Begin);
player.Stream = null;
player.Stream = ms;
player.Play();
}
}
}