首页 文章

如何检查麦克风是否可用于录制

提问于
浏览
2

我正在开发一个WPF应用程序,其中需要记录来自用户的音频消息 . 我按照here上的代码并且工作正常 . 现在的问题是,如果它是一个桌面我只检查是否有内置麦克风,但如果有任何连接的外部麦克风没有 . 我还想知道用户是否已禁用麦克风 . 你能告诉我如何检查是否连接了任何外接麦克风 . 如果用户无法录制音频,我需要显示错误消息 .

1 回答

  • 1

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

    由于我不是这方面的专家,我宁愿指出你在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);
    }
    

    以下是一些可以帮助您完成项目的其他链接:

    来自CodePject的C#中带有频谱图的声音激活 Logger 来自CodePject的第9 Channels .NET录音机的CodeProject .NET录音机

相关问题