gpt4 book ai didi

c# - 如何检查麦克风是否可用于录音

转载 作者:太空宇宙 更新时间:2023-11-03 13:28:30 24 4
gpt4 key购买 nike

我正在开发一个 WPF 应用程序,其中需要录制来 self 的用户的音频消息。我遵循了 here 上的代码并且工作正常。现在的问题是,如果它是台式机,我只检查是否有内置麦克风,而不检查是否连接了任何外部麦克风。而且我还想知道用户是否禁用了麦克风。你能告诉我如何检查是否连接了任何外部麦克风吗?如果用户无法录制音频,我需要显示一条错误消息。

最佳答案

为了在 C# 中检测硬件变化,您可以使用 WM_DEVICECHANGE message将设备或计算机的硬件配置更改通知应用程序

由于我远非这方面的专家,我宁愿向您指出 Detecting when a microphone is unplugged在 StackOverflow 上提问,而不是试图向您解释。该帖子中接受的答案应该可以帮助您检测麦克风何时被拔下。从链接问题的已接受答案:

using System.Runtime.InteropServices;
const int WM_DEVICECHANGE = 0x0219;
// new device is pluggedin
const int DBT_DEVICEARRIVAL = 0x8000;
//device is removed
const int DBT_DEVICEREMOVECOMPLETE = 0x8004;
//device is changed
const int DBT_DEVNODES_CHANGED = 0x0007;
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_DEVICECHANGE
{
//Your code here.
}
base.WndProc(ref m);
}

以下是一些可能对您的项目有帮助的其他链接:

Sound Activated Recorder with Spectrogram in C# from CodeProject
.NET Voice Recorder from Channel 9
.NET Voice Recorder from CodePlex

关于c# - 如何检查麦克风是否可用于录音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21477590/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com