3
我有一張帶有多個輸出的聲卡,並使用ALSA將它們映射到2個獨立的立體聲通道。配置工作正常,並允許我,例如揚聲器測試播放音頻。通過Java SoundSystem使用ALSA pcm輸出
我現在想使用AudioSystem API在Java程序中使用這2個立體聲輸出。但是,stereo1和stereo2不會'使用MixerInfo顯示。
我真的不明白Java是如何決定使用AudioSystem API公開哪些「設備」的。我目前正在Ubuntu 11.10系統上進行測試。
這是所使用的asound.conf:
#/etc/asound.conf
pcm_slave.fourchannels {
pcm "hw:0,0"
channels 4
}
pcm.stereo1 {
type plug
slave.pcm {
type dshare
ipc_key 87882222
slave fourchannels
bindings [ 0 1 ]
}
}
pcm.stereo2 {
type plug
slave.pcm {
type dshare
ipc_key 87882222
slave fourchannels
bindings [ 2 3 ]
}
}
這是我用來顯示可用的輸入和輸出的代碼:
Mixer.Info[] mixers = AudioSystem.getMixerInfo();
for (Mixer.Info mixerInfo : mixers) {
System.out.println("Found Mixer: " + mixerInfo);
Mixer m = AudioSystem.getMixer(mixerInfo);
Line.Info[] sourceLines = m.getSourceLineInfo();
for (Line.Info li : sourceLines) {
System.out.println(" Found source line: " + li);
try {
m.open();
} catch (LineUnavailableException e) {
System.out.println(" Line unavailable.");
}
}
Line.Info[] targetLines = m.getTargetLineInfo();
for (Line.Info li : targetLines) {
System.out.println(" Found source line: " + li);
try {
m.open();
} catch (LineUnavailableException e) {
System.out.println(" Line unavailable.");
}
}
}
我們可以看一下您正在使用,以顯示你的混頻器的代碼? – 2012-02-22 01:59:15
完成,見上面! – nanoman 2012-02-22 08:43:55
看起來不錯。嗯。這個代碼的輸出如何?我承認我對nix系統聲音瞭解不多,可能不會有太大的幫助。但其他人也許可以使用這些信息。我記得有一個線索與獨佔音頻線的應用程序之一有關,而不是讓Java到達它們。但我無法理解(理解)整個交易所。如果你想看看那個主題,那就在JGO:http://www.java-gaming.org/topics/javasound-on-linux/24686/view.html有幾個對ALSA的參考。 – 2012-02-22 21:20:40