[問題] 請問多個USB音效裝置判別及預設裝置問題

看板Programming作者 (歪歪)時間12年前 (2013/01/29 17:16), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
小弟最近在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
文章代碼(AID): #1H1vDoZa (Programming)
文章代碼(AID): #1H1vDoZa (Programming)