我想做一件简单的事情。我希望在指定的声音媒体上播放声音,而不是在默认媒体上播放。
这是我的最后一次尝试,遍历所有媒体并播放声音。只有默认设备上的媒体才会播放声音。即使直接播放默认设备也无法工作。
这是我的最后一次尝试,遍历所有媒体并播放声音。只有默认设备上的媒体才会播放声音。即使直接播放默认设备也无法工作。
public void testSoundPLayer() throws Exception {
AudioInputStream inputStream = AudioSystem.getAudioInputStream(Main.class.getResourceAsStream(Constants.SOUND_ALERT));
Mixer.Info[] mixerInfo = AudioSystem.getMixerInfo();
for(int i = 0; i < mixerInfo.length; i++)
{
Mixer.Info info = mixerInfo[i];
System.out.println(String.format("Name [%s] \n Description [%s]\n\n", info.getName(), info.getDescription()));
System.out.println(info.getDescription());
try
{
Clip clip = AudioSystem.getClip(info);
clip.open(inputStream);
clip.start();
}
catch (Throwable t)
{
System.out.println(t.toString());
}
Thread.sleep(2000L);
}
}
我愿意使用外部库,甚至更改默认声卡。我只是想要一个“好用”的方法在给定的声卡上播放声音(wav),而不依赖于操作系统。