• 大小: 8.6MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-11-10
  • 语言: C/C++
  • 标签: 麦克风  插拔  检测  

资源简介

C#/C++麦克风插拔检测, 3个工程:一个是C++实现IMMNotificationClient方式,一个是将IMMNotificationClient方式的修改为dll,另外一个是调用IMMNotificationClient的dll,或者调用naudio方式来实现,IMMNotificationClient来自于微软提供的demo,naudio需要自己去naudio官网查看如何使用

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using NAudio.CoreAudioApi;
using System.Threading;
namespace mic_dectected_csharp 
{
    public partial class Form1 : Form
    {
        [DllImport(“user32.dll“ EntryPoint = “FindWindow“ CharSet = CharSet.Auto)]
        public extern static IntPtr FindWindow(string lpClassName string lpWindowName);

        [DllImport(“user32.dll“ CharSet = CharSet.Auto)]
        public static extern int PostMessage(IntPtr hWnd int msg IntPtr wParam IntPtr lParam);
        public const int WM_CLOSE = 0x10;


        private NotificationClient m_NotificationClient;
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender EventArgs e)
        {
            //GetstartWithAudio();
            GetStartWithMyDll();
        }
        private void GetstartWithAudio()
        {
            var enumerator = new NAudio.CoreAudioApi.MMDeviceEnumerator();

            // Allows you to enumerate rendering devices in certain states
            var endpoints = enumerator.EnumerateAudioEndPoints(
                DataFlow.Render
                DeviceState.Unplugged | DeviceState.Active);
            foreach (var endpoint in endpoints)
            {
                Console.WriteLine(“{0} - {1}“ endpoint.DeviceFriendlyName endpoint.State);
            }
            m_NotificationClient = new NotificationClient();
            m_NotificationClient.eStateChangeEvent += m_NotificationClient_eStateChangeEvent;
            // Aswell as hook to the actual event
            enumerator.RegisterEndpointNotificationCallback(m_NotificationClient);

        }
        private void GetStartWithMyDll()
        {
            AudioStateListenerWrapper aslw = new AudioStateListenerWrapper();
            aslw.StartListerMicState();
            AudioStateListenerWrapper.eStateChangeEvent += m_NotificationClient_eStateChangeEvent;
        }


        void m_NotificationClient_eStateChangeEvent(object sender StateChangeEvent e)
        {
            string deviceid = e.deviceId;
            DeviceState newstate = e.newState;

            this.Invoke(new Action(() =>
            {
                IntPtr ptr = FindWindow(null “麦克风提示“);//如果弹出的用户登录提示窗口还在,则关掉它
                if (ptr != IntPtr.Zero)
                {
                    PostMessage(ptr WM_CLOSE IntPtr.Zero IntPtr.Zero);
                    Update();
                }
            }));

            switch (newstate)
            {
                case DeviceState.Active:
                    {
                        this.Invoke(new Action(() =>
                        {
                            MessageBox.Show(“麦克风已插上!““麦克风提示“);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        187  2016-03-25 11:42  mic_dectected_csharp\mic_dectected_csharp\App.config

     文件      23168  2016-03-26 14:26  mic_dectected_csharp\mic_dectected_csharp\bin\Debug\mic_dectected_csharp.vshost.exe

     文件        187  2016-03-25 11:42  mic_dectected_csharp\mic_dectected_csharp\bin\Debug\mic_dectected_csharp.vshost.exe.config

     文件        490  2013-06-18 20:28  mic_dectected_csharp\mic_dectected_csharp\bin\Debug\mic_dectected_csharp.vshost.exe.manifest

     文件      47616  2016-03-25 18:47  mic_dectected_csharp\mic_dectected_csharp\bin\Debug\mic_detected.dll

     文件       6080  2016-03-26 15:11  mic_dectected_csharp\mic_dectected_csharp\Form1.cs

     文件       2053  2016-03-26 15:04  mic_dectected_csharp\mic_dectected_csharp\Form1.Designer.cs

     文件       5817  2016-03-26 15:04  mic_dectected_csharp\mic_dectected_csharp\Form1.resx

     文件       2999  2016-03-26 14:51  mic_dectected_csharp\mic_dectected_csharp\IMMNotificationClient.cs

     文件       4176  2016-03-26 15:10  mic_dectected_csharp\mic_dectected_csharp\mic_dectected_csharp.csproj

     文件      33362  2016-03-25 15:09  mic_dectected_csharp\mic_dectected_csharp\NativeAudioAPI1.cs

     文件       1453  2016-03-26 14:31  mic_dectected_csharp\mic_dectected_csharp\obj\Debug\DesignTimeResolveAssemblyReferences.cache

     文件       7186  2016-03-26 15:10  mic_dectected_csharp\mic_dectected_csharp\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache

     文件          0  2016-03-25 11:42  mic_dectected_csharp\mic_dectected_csharp\obj\Debug\TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs

     文件          0  2016-03-25 11:42  mic_dectected_csharp\mic_dectected_csharp\obj\Debug\TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs

     文件          0  2016-03-25 11:42  mic_dectected_csharp\mic_dectected_csharp\obj\Debug\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs

     文件        133  2016-03-25 12:12  mic_dectected_csharp\mic_dectected_csharp\packages.config

     文件        543  2016-03-25 11:42  mic_dectected_csharp\mic_dectected_csharp\Program.cs

     文件       1452  2016-03-25 11:42  mic_dectected_csharp\mic_dectected_csharp\Properties\AssemblyInfo.cs

     文件       2870  2016-03-25 11:42  mic_dectected_csharp\mic_dectected_csharp\Properties\Resources.Designer.cs

     文件       5612  2016-03-25 11:42  mic_dectected_csharp\mic_dectected_csharp\Properties\Resources.resx

     文件       1107  2016-03-25 11:42  mic_dectected_csharp\mic_dectected_csharp\Properties\Settings.Designer.cs

     文件        249  2016-03-25 11:42  mic_dectected_csharp\mic_dectected_csharp\Properties\Settings.settings

     文件       3735  2016-03-26 15:13  mic_dectected_csharp\mic_dectected_csharp.sln

    ..A..H.     66048  2016-03-26 15:14  mic_dectected_csharp\mic_dectected_csharp.v12.suo

     文件     471040  2016-03-25 12:12  mic_dectected_csharp\packages\NAudio.1.7.3\lib\net35\NAudio.dll

     文件     940967  2016-03-25 12:12  mic_dectected_csharp\packages\NAudio.1.7.3\lib\net35\NAudio.xml

     文件     236032  2016-03-25 12:12  mic_dectected_csharp\packages\NAudio.1.7.3\lib\windows8\NAudio.Win8.dll

     文件     576543  2016-03-25 12:12  mic_dectected_csharp\packages\NAudio.1.7.3\lib\windows8\NAudio.Win8.xml

     文件       2660  2016-03-25 12:12  mic_dectected_csharp\packages\NAudio.1.7.3\license.txt

............此处省略62个文件信息

评论

共有 条评论