如何检测麦克风是否存在
我刚刚接到了一个很长的技术支持电话,因为客户的笔记本电脑上没有麦克风。 (愚蠢的我:他们说他们之前使用过麦克风,而我从未听说过笔记本电脑没有有麦克风)。
我想知道是否有一种方法可以检测 Windows XP、Vista、7 上是否有麦克风(录音功能)。
(我已启用错误处理,它会记录错误,然后退出功能,但应用程序只是如果没有麦克风,在 Windows 7 上会崩溃)。
I just had a very long tech support call because a customer didn't have a Mic on their laptop. (Stupid me: they said they'd used the mic earlier and I have never heard of a laptop not having a Mic).
I'm wondering if there is a way to detect whether there is a Microphone (recording capability) on Windows XP, Vista, 7.
(I've got error handling enabled and it logs the error and then exits the Function but the app just crashes on Windows 7 if there's no Microphone. )
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我会使用 IMMDeviceEnumerator::GetDefaultAudioEndpoint -这将返回指定角色和数据流的默认音频设备。
特别是,您将使用:
I'd use IMMDeviceEnumerator::GetDefaultAudioEndpoint - this returns the default audio device for the specified role and data flow.
In particular, you would use:
查看系统托盘音频设备切换器
在此VB 源代码 您将获得有关如何枚举音频 I/O 设备的示例。
Check out System Tray Audio Device Switcher
In this VB source code you will an example on how to enumerate audio I/O devices.
在 C++ 中
in C++
我认为在 VB 6 中执行此操作的唯一方法是通过 Direct X:
http://msdn.microsoft.com/en-us/library/bb318770(VS.85).aspx
您可以查看一下:
http://msdn.microsoft.com/en-us/library/bb280815(VS.85) .aspx
CaptureDevices 集合类 (Microsoft.DirectX.DirectSound)
http: //msdn.microsoft.com/en-us/library/ms810619.aspx
您也可以调用 dxdiag..
I think the only way you will be able to do this in VB 6 is through Direct X:
http://msdn.microsoft.com/en-us/library/bb318770(VS.85).aspx
You can check this out:
http://msdn.microsoft.com/en-us/library/bb280815(VS.85).aspx
CaptureDevices Collection Class (Microsoft.DirectX.DirectSound)
http://msdn.microsoft.com/en-us/library/ms810619.aspx
you can also call dxdiag..