作者yyabcdeyy2 (歪歪)
看板Programming
标题[问题] 请问多个USB音效装置判别及预设装置问题
时间Tue Jan 29 17:16:31 2013
小弟最近在WinXP开发USB音效装置的应用端时,
碰到以下二个问题,
在Google爬文好久仍然试不出个所以然,
想请教各位前辈是否也碰过相同问题?
可否提供小弟一些方向, 感激不尽 >"<
第一个问题:
我开发的是复合式USB装置,它有HID和Audio Input/Output等功能,
当有多个一模一样的这种装置插在同一台电脑时,
我可以顺利的对每个HID装置读写,
也可透过不同的Device ID,对各个音效装置做录/放音,
但问题来了,假设我要录音,
我透过WinAPI的 waveInGetDevCaps()函式,
取出的 WAVEINCAPS 结构内容完全相同,无法用名称分辨。
资料如下:
wMid 0xffff
wPid 0xffff
vDriverVersion 0x00000100
szPname 0x0012e1bc "这里不方便透漏XD"
dwFormats 0x000bffff
wChannels 0xffff
wReserved1 0xe639
透过不同的Device ID, 虽然可对各个音效输入装置录音,
但我却无法分辨, 就竟现在录到的是声音,
是对应至哪个HID装置的音效输入?
第二个问题:
当含有USB音效的装置一插入时,
Windows会很鸡婆的帮我把系统预设音效换成刚刚插入的,
请问我是否有办法写程式,把预设音效再换成别的?
或有什麽方法避免Windows变更预设音效装置吗?
我在MSDN的文件中,看到waveInOpen的fdwOpen参数,
其中有一项是 WAVE_MAPPED,其英文说明如下:
The uDeviceID parameter specifies a waveform-audio device
to be mapped to by the wave mapper.
看起来的意思好像是开启装置时,会把这个装置设成预设装置,
试了一下好像也没作用,不知是不是我英文不好会错意了~~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.221.49.21