从Windows获取完整的音频设备名称
发布时间:2020-12-13 20:26:34 所属栏目:Windows 来源:网络整理
导读:有没有办法在Windows XP及更高版本中获取完整的音频设备名称? 我可以使用MIXERC??APS,但szPname成员将限制为32个字符(包括NULL).对于音频设备名称“麦克风(高清晰度音频设备)”,我只返回“麦克风(高清晰度Aud)”.这是由于MAXPNAMELEN被定义为32.我已经尝试
有没有办法在Windows XP及更高版本中获取完整的音频设备名称?
我可以使用MIXERC??APS,但szPname成员将限制为32个字符(包括NULL).对于音频设备名称“麦克风(高清晰度音频设备)”,我只返回“麦克风(高清晰度Aud)”.这是由于MAXPNAMELEN被定义为32.我已经尝试将其重新定义为更大的数字而没有效果. 这是我正在使用的代码: MIXERCAPS mc; ZeroMemory( &mc,sizeof(MIXERCAPS) ); mm = mixerGetDevCaps( reinterpret_cast<UINT_PTR>(m_hMixer),&mc,sizeof(MIXERCAPS) ); 我看到了this question,但它引用了Vista和更高版本.
如果您使用经典的Windows多媒体界面,您可能无法绕过MAXPNAMELEN限制,因为它已编译到Windows本身.
但是,如果使用DirectSound,则可能会获得完整的设备名称.以下代码未经测试,但我认为它应该可行. BOOL CALLBACK EnumCallback(LPGUID guid,LPCSTR descr,LPCSTR modname,LPVOID ctx) { std::vector<std::string> *names = (std::vector<std::string>*)ctx; names->push_back(std::string(descr)); return TRUE; } int main() { std::vector<std::string> names; if (!FAILED(DirectSoundEnumerate(&EnumCallback,&names))) { // do stuff } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- .NET 3.5是否允许使用Windows 7的新功能?
- windows-server-2008 – SCHTASKS无法管理远程任务
- windows-server-2008-r2 – 服务器突然无法建立新连接;看似
- Windows API一日一练 61 GetDriveType函数
- windows – 如何制作自定义键盘布局?
- windows-installer – Windows Installer属性中可以存储的最
- PHP7安装Redis扩展教程【Linux与Windows平台】
- Windows Azure:使用第三方Web服务
- windows – 从MAC地址获取IP. arp -a没有显示设备
- windows-xp – XP用户可以在帐户锁定后解锁屏幕
推荐文章
站长推荐
热点阅读