C# 文字转语音 播放SpVoice
2021-01-17 15:11
标签:默认 das 改进 espeak sum 没有 else purge lse 最近拿到一个需求,需要调整一下现有的语音播放逻辑,因为有的语音需要循环播放,有的不需要 我们以前的逻辑是都不循环的,所以采用了SpVoice (引入SpeechLib.dll)的异步播放,我拿到了之后发现异步和同步其实应该是都可以实现的,但是异步我认为有一个问题就是不知道什么时候能让循环停止, 搜了很多也没有解决我的问题,于是我尝试了用同步来解决这个问题 以下是我改进的代码: C# 文字转语音 播放SpVoice 标签:默认 das 改进 espeak sum 没有 else purge lse 原文地址:https://www.cnblogs.com/Yida-Tingting/p/12195583.html
/// 同步播放语音
///
/// 语音内容
/// 是否循环播放
/// 查询是否结束
public void playSoundAsync(string voiceContent, bool isLoop, bool isSelectOver = false)
{
VoiceContent = voiceContent;
int i = 1;
//是否循环播放
if (isLoop)
{
//最多循环10次
while (i {
//如果查询结束
if (isSelectOver)
{
//关闭当前语音
voice.Speak(string.Empty, SpeechVoiceSpeakFlags.SVSFPurgeBeforeSpeak);
break;
}
else
{
//播放语音
voice.Speak(voiceContent, SpeechVoiceSpeakFlags.SVSFIsXML | SpeechVoiceSpeakFlags.SVSFlagsAsync);
i++;
}
}
else
{
//如果查询结束
if (isSelectOver)
{
//关闭语音
voice.Speak(string.Empty, SpeechVoiceSpeakFlags.SVSFPurgeBeforeSpeak);
}
else
{
//播放语音
voice.Speak(voiceContent, SpeechVoiceSpeakFlags.SVSFIsXML | SpeechVoiceSpeakFlags.SVSFlagsAsync);
}
}
文章标题:C# 文字转语音 播放SpVoice
文章链接:http://soscw.com/index.php/essay/43237.html