繁体   English   中英

如何检查麦克风是否可以录音

[英]How to check if a microphone is available for recording

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

为了检测C#中硬件的更改,可以使用WM_DEVICECHANGE消息 ,该消息 通知应用程序设备或计算机的硬件配置发生更改

由于我距离该领域的专家还很远,所以我希望您针对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);
}

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

CodeProject 中C#中带有声谱图的声控录音机
通道9的.NET录音机
CodePlex的.NET录音机

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM