我的电脑有 3 个声卡。我可以使用此代码选择并播放 .wav 文件
import javax.sound.sampled.*
AudioInputStream audioIn = AudioSystem.getAudioInputStream(url);
Mixer.Info[] arrMixerInfo = AudioSystem.getMixerInfo();
// Get a sound clip resource.
Clip clip = AudioSystem.getClip(arrMixerInfo[1]);
// Open audio clip and load samples from the audio input stream.
clip.open(audioIn);
clip.start();
clip.drain();
clip.close();
如何播放 .mp3 文件?
在 Linux 上,您可以使用 mpg123 命令在不同的声卡上播放 mp3。
public class SoundTest {
public static void main(String[] args) {
//play mp3
try {
//my first soundcard is CA0106 with id: CARD=CA0106
java.lang.Process p1 = Runtime.getRuntime().exec(new String[]{"mpg123", "-asysdefault:CARD=CA0106", "audio/1.mp3"});
//my second soundcard is CARD=Intel (internal motherboard souncard)
java.lang.Process p2 = Runtime.getRuntime().exec(new String[]{"mpg123", "-asysdefault:CARD=Intel", "audio/2.mp3"});
} catch (Exception e) {
e.printStackTrace();
}
//play wav
try {
java.lang.Process p3 = Runtime.getRuntime().exec(new String[]{"aplay", "audio/audio1.wav", "-Dsysdefault:CARD=Intel"});
java.lang.Process p4 = Runtime.getRuntime().exec(new String[]{"aplay", "audio/audio2.wav", "-Dsysdefault:CARD=CA0106"});
} catch (Exception e) {
e.printStackTrace();
}
}
}
您可以通过命令获取声卡 IDaplay -L
这不是 Java 方式,但对我的任务很有用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)