我想通过命令行使用java播放声音文件。
到目前为止,我已经成功列出了目录的内容,但无法播放wav文件
列出目录内容的代码
Process p = Runtime.getRuntime().exec(new String[]{"/bin/bash","-c","ls"});
BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line=null;
while((line=input.readLine()) != null) {
System.out.println(line);
}
int exitVal = p.waitFor();
System.out.println("Exited with error code "+exitVal);
播放wav文件的代码,这不起作用
Process p = Runtime.getRuntime().exec(new String[]{"/usr/bin/aplay","~/javafx/examples/PrayerTime/dist/police_s.wav"});
BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line=null;
while((line=input.readLine()) != null) {
System.out.println(line);
}
int exitVal = p.waitFor();
System.out.println("Exited with error code "+exitVal);
我收到以下错误
Exited with error code 1
答案 0 :(得分:3)
以下是info. page代码javasound中所见代码的略微变化。
import java.net.URL;
import javax.sound.sampled.*;
public class LoopSound {
public static void main(String[] args) throws Exception {
URL url = new URL(
"http://pscode.org/media/leftright.wav");
Clip clip = AudioSystem.getClip();
// getAudioInputStream() also accepts a File or InputStream
AudioInputStream ais = AudioSystem.
getAudioInputStream( url );
clip.open(ais);
clip.loop(Clip.LOOP_CONTINUOUSLY);
Thread.sleep(5000);
}
}
它可以从命令行运行。
答案 1 :(得分:0)
这是在cmd / terminal上执行任何命令后出现的系统错误代码。退出代码如1 - 2,126 - 165和255具有特殊含义,因此应避免用户指定的退出参数。许多脚本在出错时使用退出1作为一般救助。由于退出代码1表示许多可能的错误,这可能对调试没有帮助
尝试将退出状态编号系统化(请参阅/usr/include/sysexits.h),但这适用于C和C ++程序员。类似的脚本标准可能是合适的。
Here you can find some system error codes