2

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

2 回答 2

3

这是信息中看到的代码的轻微变化。标签的页面。

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);
    }
}

它从命令行工作。

于 2013-09-04T12:12:30.220 回答
0

这是在 cmd/终端上执行任何命令后出现的系统错误代码。退出代码(如 1 - 2、126 - 165 和 255)具有特殊含义,因此对于用户指定的退出参数应避免使用。许多脚本使用退出 1 作为出错时的一般救助。由于退出代码 1 表示许多可能的错误,这可能对调试没有帮助。
已经尝试将退出状态编号系统化(请参阅 /usr/include/sysexits.h),但这适用于 C 和 C++ 程序员。类似的脚本标准可能是合适的。
在这里您可以找到一些系统错误代码

于 2013-09-04T12:05:01.100 回答