2013-09-04 1 views
2

Я хотел бы воспроизвести звуковой файл с помощью java через командную строку.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

, поэтому у вас нет ошибки, а не «Выйти с кодом ошибки 1»? – Freak

+0

, когда комманд, заключенный в примере с листингом каталога, получил код ошибки 0 – Ossama

ответ

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

Он работает из командной строки.

+0

excelent, как я могу играть в локальный файл mate :) – Ossama

+0

URL url = this.getClass(). getClassLoader(). getResource ("gameover.wav"); – Ossama

+0

Я использую эти идеи, но не работаю, File soundFile = new File ("~/javafx/examples/PrayerTime/dist/polic_s.wav"); URL url = this.getClass(). GetClassLoader(). GetResource ("polic_s.wav"); – Ossama

0

Это код ошибки системы, которая приходит после выполнения любой команды на Cmd/терминале. Коды выхода, такие как 1 - 2, 126 - 165 и 255, имеют специальные значения, поэтому их следует избегать для заданных пользователем параметров выхода. Многие сценарии используют выход 1 в качестве общей аварийной ситуации при ошибке. Так как код выхода 1 означает так много возможных ошибок, это, вероятно, не поможет в отладке.
Была предпринята попытка систематизировать номера статуса выхода (см. /usr/include/sysexits.h), но это предназначено для программистов на C и C++. Аналогичный стандарт для сценариев может быть уместным.
Here you can find some system error codes

+0

Я дал xample перечисления каталога, который работал, а затем хотел изменить этот пример, чтобы иметь возможность воспроизводить wav-файл. вы можете мне помочь с этим – Ossama