检测掉电脑无声卡则不发声
//添加枚举
public enum 发声
{
待检测声卡
, 有声卡
, 无声卡
}
public static class msgboxExtensions
(
static 发声 发声 = 发声.待检测声卡;
//发声函数
private static dynamic spVoice = null;
public static void say(this string msg)
{
if (发声 == 发声.待检测声卡)
{
try
{
var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_SoundDevice");
var soundDevices = searcher.Get();
if (soundDevices.Count > 0)
{
发声 = 发声.有声卡;
Console.WriteLine("系统中存在声卡。");
}
else
{
发声 = 发声.无声卡;
Console.WriteLine("未检测到声卡。");
}
}
catch (Exception ex)
{
Console.WriteLine($"发生错误:{ex.Message}");
}
}
if (发声 == 发声.有声卡)
{
if (spVoice == null)
{
Type type = Type.GetTypeFromProgID("SAPI.SpVoice");
spVoice = Activator.CreateInstance(type);
}
Thread newThread = new Thread(new ThreadStart(() =>
{
spVoice.Speak(msg);
}));
newThread.IsBackground = true;
newThread.Start();
}
msg.messageBox();
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步