我在用
String comspec = System.getenv().get("ComSpec");
String fileToPlay = "/path/to/wav/file.wav";
Runtime.getRuntime().exec(comspec, new String[]{"/c", "start", fileToPlay}) ;我继续得到一个错误,我所需要做的就是播放一个.wav文件
发布于 2014-05-15 05:12:24
下面是只播放、循环和暂停AudioPlayer文件的.wav类的代码:
class AudioPlayer implements Runnable
{
AudioInputStream input;
Clip clip;
private boolean running;
public AudioPlayer(String path)
{
running = true;
try
{
clip = AudioSystem.getClip();
input = AudioSystem.getAudioInputStream(new File(path));
clip.open(input);
}
catch (UnsupportedAudioFileException | IOException | LineUnavailableException e)
{
System.out.println(e);
}
}
public void play()
{
clip.loop(1);
running = true;
}
public void stop()
{
running = false;
clip.stop();
}
public void loop()
{
running = true;
new Thread(this).start();
}
public void suspend()
{
running = false;
}
@Override
public void run()
{
try
{
Thread.sleep(2);
}
catch(InterruptedException e)
{
}
while(running)
{
clip.loop(1);
}
}
}让播放音频的对象成为一个新线程总是很理想的,这样您就可以轻松地播放、暂停它们。
javax.sound API,特别是Clip类,有非常有用的方法,您可以使用这些方法来实现广泛的声音系统。一定要检查一下!
如果你还有任何问题,只需在这篇文章上发表评论。
发布于 2014-05-15 03:53:32
尝试使用javax.sound api。
AudioSystem.getAudioInputStream(File file);试着按照下面的代码运行,这对我有效。
AudioInputStream s;
AudioFormat f;
DataLine.Info i;
File inputFile;
Clip c;
s = AudioSystem.getAudioInputStream(inputFile);
f = s.getFormat();
i = new DataLine.Info(Clip.class, f);
c = (Clip) AudioSystem.getLine(i);
c.open(s);
c.start();https://stackoverflow.com/questions/23668818
复制相似问题