我使用4個USB聲卡(華碩Xonar U1)。我想發送給他們中的每一個不同的聲音(用不同的語言敘述相同的文字)。現在,我做什麼,以獲得混聲器是我感興趣的,是這樣的:Java聲音API - 區分多個相同的USB聲卡
Info[] mixerInfo = AudioSystem.getMixerInfo();
int count = 0;
for (Info i : mixerInfo) {
System.out.println("["+(count++)+"]" + i.getName() + " - " + i.getDescription()+" - "+i.getVendor());
}
這給了我類似如下:
[5] Device [plughw:1,0] - Direct Audio Device: USB Advanced Audio Device, USB Audio, USB Audio - ALSA (http://www.alsa-project.org)
[6] Device_1 [plughw:2,0] - Direct Audio Device: USB Advanced Audio Device, USB Audio, USB Audio - ALSA (http://www.alsa-project.org)
[7] Device_2 [plughw:3,0] - Direct Audio Device: USB Advanced Audio Device, USB Audio, USB Audio - ALSA (http://www.alsa-project.org)
現在,在我的配置文件,我將聲卡與Info []索引(「count」變量)相關聯。
問題是如果我更改聲卡連接的USB端口。然後Info []數組有一個全新的順序,我不知道哪個聲卡應該播放語言en_US
和哪個pt_PT
例如。
此外,「plughw:1,0」字符串更改時沒有任何明顯的模式。如果我只有一個聲卡,無論連接到哪個端口,它都將始終爲「plughw:1,0」。
如果計算機重新啓動,混音器Info []有時也會重新排序。
我也看過jUSB,但聲卡的設備信息對於所有聲卡都完全相同,我不知道如何映射它爲我提供的Java Sound API混音器的USB信息信息。
那麼,有誰知道如何唯一標識與Java Sound API相同的聲卡?
另外,有沒有人有另一個建議,我可以用哪種語言/庫編寫一個應用程序,在同一臺機器上輸出不同的音頻文件到4個不同的USB聲卡?
我應該提到我們需要使用Linux。從我看到的情況來看,NativeBass在Linux上不起作用。無論如何,謝謝你的回答,它給了我們一些見解。我特別喜歡USB hub技巧,但我沒有機會測試它。 – 2009-12-11 11:01:58