public class SoundSpeaker
{
private static SoundSpeaker instance = new Lazy<SoundSpeaker>(() => new SoundSpeaker(), true).Value;
/// <summary>
/// 获取一个值,该值指示此类型的唯一实例,此属性为只读。
/// </summary>
public static SoundSpeaker Instance
{
get
{
return SoundSpeaker.instance;
}
}
{
private static SoundSpeaker instance = new Lazy<SoundSpeaker>(() => new SoundSpeaker(), true).Value;
/// <summary>
/// 获取一个值,该值指示此类型的唯一实例,此属性为只读。
/// </summary>
public static SoundSpeaker Instance
{
get
{
return SoundSpeaker.instance;
}
}
private SpeechLib.SpVoice SpVoice { get; set; }
/// <summary>
///
/// </summary>
private SoundSpeaker()
{
Type comType = Type.GetTypeFromProgID("SAPI.SpVoice");
object rVar = null;
if (comType != null)
{
rVar = System.Activator.CreateInstance(comType);
SpVoice = rVar as SpeechLib.SpVoice;
}
}
/// <summary>
/// 使用中文语音播放指定文字。
/// </summary>
/// <param name="text">要播放的文字</param>
public void Speak(String text)
{
if (String.IsNullOrEmpty(text))
{
return;
}
SpVoice?.Speak(text, SpeechLib.SpeechVoiceSpeakFlags.SVSFlagsAsync);
}
}
/// <summary>
///
/// </summary>
private SoundSpeaker()
{
Type comType = Type.GetTypeFromProgID("SAPI.SpVoice");
object rVar = null;
if (comType != null)
{
rVar = System.Activator.CreateInstance(comType);
SpVoice = rVar as SpeechLib.SpVoice;
}
}
/// <summary>
/// 使用中文语音播放指定文字。
/// </summary>
/// <param name="text">要播放的文字</param>
public void Speak(String text)
{
if (String.IsNullOrEmpty(text))
{
return;
}
SpVoice?.Speak(text, SpeechLib.SpeechVoiceSpeakFlags.SVSFlagsAsync);
}
}