资源简介
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.xm
文件 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.xm
文件 2660 2016-03-25 12:12 mic_dectected_csharp\packages\NAudio.1.7.3\license.txt
............此处省略62个文件信息
相关资源
- OPENCV人脸检测加角点检测并输出坐标
- 圆检测和方形检测图像处理
- 交通标识牌检测c++代码
- C++检测托盘图标和枚举进程2免费
- opencv prewitt边缘检测
- 简易的心电采集电路,包括下位机编
- 深度学习之卷积神经网络CNN用于人脸
- 遥感图像变化检测 VC++
- 隐马尔可夫模型与异常检测的论文
- 基于Opencv的交通流量实时检测
- 基于VC++实现的人脸检测
- C++实时监控麦克风话筒mic声音强度大
- C++实现图像边缘检测
- 人脸跟踪基于opencv
- 手势指尖检测算法c++实现
- cppcheck.hpi 1.9
- 防火墙与入侵检测系统课程设计
- 疲劳检测程序源码
- harris角点检测和特征匹配
- 在vc下开发的canny边缘检测 MFC
- VC++实现灰度图像的6种边缘检测算子
- 超详细 snort源码分析
- opencv结合MFC进行人脸检测
- 图像处理基本的算法边缘,梯度,均
- 心电信号检测C语言编写的程序
- 虹膜定位方法实现
- 语音识别端点检测程序C++
- 判断是否疲劳驾驶的设计
- SURF特征点检测 程序 by浅墨
- OpenCV检测图片中的角点程序 by浅墨
评论
共有 条评论