2

尝试创建具有文本框的软件,用户可以在其中输入单词或短语,程序将使用谷歌翻译来“说出”这些单词并将该语音下载到 wav 或 mp3 文件,然后播放该文件。

一切正常,除了播放。文件将被加载到计算机,但在播放它时,Visual Studio 会给出一个错误,即文件不是有效的 wav 文件。从计算机手动播放文件时,媒体播放器播放正常!

 private void Puhu(string Sana) {

WebClient web = new WebClient();
web.Headers.Add(HttpRequestHeader.UserAgent, "Mozilla/4.0 (compatible; MSIE 9.0;      Windows;)");

 string encstr = string.Empty;

  string filename = "tts.wav"; 

  string s = Sana;

  encstr = Uri.EscapeDataString(s);

  web.DownloadFile("http://translate.google.com/translate_tts?tl=fi&q=" + encstr, ".\\" + filename);

   (new SoundPlayer(@"tts.wav")).Play(); // this line wont work!! Audio format is wrong!

  }
4

2 回答 2

2

因为你下载的文件是MP3文件。并且System.Media.SoundPlayer只支持WAV文件:

来自 MSDN:

SoundPlayer类支持从文件路径、URL、包含 .wav 文件的 Stream 或包含 .wav 文件的嵌入式资源加载 .wav 文件。

于 2012-07-16T07:01:30.610 回答
1

也许您可以尝试使用 Windows Media Player 控件?

请参阅:http: //msdn.microsoft.com/en-us/library/dd562851 (v=vs.85).aspx

我记得 SoundPlayer 是一种特定的格式,您必须以哪种格式提供波形文件..

于 2012-07-16T06:55:26.883 回答