Java通过命令行播放音频文件

时间:2013-09-04 11:44:08

标签: java command-line playback javasound

我想通过命令行使用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

2 个答案:

答案 0 :(得分:3)

以下是info. page代码中所见代码的略微变化。

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