【发布时间】:2016-06-03 08:21:51
【问题描述】:
我正在尝试做一些简单的事情。我想在给定的声音媒体上播放声音,而不是在默认媒体上播放。
这是我最后一次尝试,迭代所有媒体的思想并播放声音。只有默认设备上的媒体播放一些东西。直接播放时,即使默认设备也不工作。
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),而不需要依赖操作系统的方法。
【问题讨论】:
-
Clip是 Java Sound 的一部分,而不是 JMF。 “我只想要一个“不错”的方法来播放声音(wav),而不需要依赖操作系统的方法。” 你很困惑。Clip就是它! -
实际上我的最后一句话令人困惑。我想要一种在给定声卡上播放声音的好方法。我编辑帖子。