2016-10-04 2 views
-1

나는 내가 재생할 수있는 형식으로 조작 한 사운드의 복사본을 작성하려고합니다.하지만 시도 할 때마다 파일은 매우 작습니다 (< 1kb). 읽을 수있는 데이터가 아니기 때문에 재생되지 않습니다. 여기에 내가 추측하고있어 코드파일에 사운드 (WAV)를 쓰는 방법

public void play(int pause, String filename, String path) throws InterruptedException { 
    for (int i =0; i < numWords; i++) { 
     myWordArray[i].blockingPlay(); 
     Thread.sleep(pause); // 300 m.seconds, as listed in main method parameter 
     File file = new File(path, filename); 
    try{ 
    PrintWriter output = new PrintWriter(file); 
    output.println(myWordArray[i]); 
    output.close(); 
    } catch(IOException ex) { 
     System.out.printf("ERROR: %s\n", ex); 
    } 
    } 
} 

의 PrintWriter 단지 내가 재생하려고하면 내 WAV 파일이 손상지고 이유입니다, 문자열 일입니까? 이것 대신 무엇을 대체해야합니까?

편집 -

그래서 코멘트에 게시 된 가이드를 사용하여, 나는 코드를 수정하지만, 지금은 모든 파일을 만들지 않습니다. 여기 내 오디오 클래스의 코드 ... 여기

public void play(int pause, String filename, String path) throws InterruptedException { 
    for (int i =0; i < numWords; i++) { 
     myWordArray[i].blockingPlay(); 
     Thread.sleep(pause); // 300 m.seconds, as listed in main method parameter 
     File file = new File("C:\\Users\\Justin\\Desktop\\JavaMedia\\", "thisisatest.wav"); 
     try{ 
     InputStream fis = new FileInputStream(file); 
     byte[] buffer = new byte[(int)file.length()]; 
     fis.read(buffer, 0, buffer.length); 
     fis.close(); 
     } 
     catch(IOException ex){ 
       System.out.printf("ERROR: %s\n", ex); 
} 
} 
} 

내 주요의 전화입니다 ...
myPoem.play(300,"thisisatest_pause.wav", "C:\\Users\\Justin\\Desktop\\JavaMedia\\"); 

내가 "thisisatest_pause.wav"이 생성 한 새 파일이 될 원하는이다 ,하지만 전혀 만들지 않습니다.

+0

어쩌면 ByteArrayOutputStream 또는 이와 유사한 –

+0

가능한 복제본 [임시 파일없이 Java에서 WAV 바이트 배열로 오디오 스트림 변환] (http://stackoverflow.com/questions/198679/convert-audio-stream-to-wav-byte) -yray-in-java-without-temp-file) – BevynQ

+0

나는 가이드를 사용하여 그것을 편집하는 방법에 관해서는 매우 혼란 스럽다. – TheDkmariolink

답변