检测麦克风何时拔下

本文关键字:何时拔 麦克风 检测 | 更新日期: 2023-09-27 18:22:35

我有一个Windows窗体应用程序,其中有一个开始和一个停止始按钮时,应开始录制,当我单击停止

uint hr = MFRecWrapper.StartRecording(microPhoneName.Trim(), this.fileName.Trim(), this.bitSamplingBitrate, this.avgBytesWrittenPerSecond, this.Handle);
uint hr = MFRecWrapper.StopRecording();

我怎样才能使它达到这种效果?谢谢

检测麦克风何时拔下

我想您将不得不通过非托管代码和挂钩到windows事件来完成这项工作。WM_设备更改

示例

   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);
    }

我引用:在非托管代码中,您可以在顶级窗口进程中侦听WM_DEVICECHANGE。

这似乎也是在托管代码中实现这一点的唯一方法。