2 回答
TA贡献1841条经验 获得超3个赞
默认情况下synthesizer.SpeakAsync将使用扬声器作为输出。您将输出设置为波形文件。如果您现在调用synthesizer.SpeakAsync合成器,它将对波形文件“说话”,在这种情况下,这意味着写入它。因此,synthesizer.SpeakAsync将不会起到任何可听见的声音。
有关更多指导,请参见此处的示例。
一旦创建了 wav 文件,您就可以使用媒体播放器打开它。
synthesizer.SpeakAsync("Youre text goes here");
var pathUri = new Uri(path);
player.Open(pathUri.AbsoluteUri);
TA贡献1872条经验 获得超3个赞
当我尝试复制您的问题时,我发现了一些非常有趣的东西。令人惊讶的是,我遇到了同样的问题。为了调试它,我探索了 MediaPlayer apis 并MediaFailed在我的代码中添加了事件处理程序。
令我惊讶的是,每次播放某些内容时,处理程序都会被以下内部异常调用: MILAVERR_INVALIDWMPVERSION (Exception from HRESULT: 0x88980507).
更多的谷歌搜索导致了这篇文章,由于少数国家的反竞争政府政策,windows 10 缺少常见的媒体应用程序。
要解决此问题,您可以确保安装了 WMP 10 或更高版本,或者直接使用SoundPlayer。
private SoundPlayer player = new SoundPlayer();
player.SoundLocation = System.IO.Path.Combine(path, fileName);
player.Play();
- 2 回答
- 0 关注
- 227 浏览
添加回答
举报