我正在开发一个WPF应用程序,需要从用户那里录制音频消息。我按照这里的代码进行操作,一切正常。现在的问题是,如果是台式机,我只检查是否有内置麦克风,但没有检查是否连接了外部麦克风,也想知道用户是否已禁用麦克风。请问如何检查是否连接了任何外部麦克风?如果用户无法录制音频,我需要显示错误消息。
WM_DEVICECHANGE
消息,该消息“通知应用程序设备或计算机的硬件配置发生更改”。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#音频激活录音机与频谱图
来自Channel 9的.NET语音记录器
来自CodePlex的.NET语音记录器