我正在使用
String comspec = System.getenv().get("ComSpec");
String fileToPlay = "/path/to/wav/file.wav";
Runtime.getRuntime().exec(comspec, new String[]{"/c", "start", fileToPlay}) ;
我继续收到错误我需要它只是播放.wav文件
答案 0 :(得分:0)
尝试使用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();
答案 1 :(得分:0)
以下是仅播放,循环和暂停.wav文件的AudioPlayer类的代码:
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类,具有非常有用的方法,您可以使用它们实现各种声音系统。一定要看一下!
如果您还有其他问题,请在此帖子上发表评论。