나는 내가 재생할 수있는 형식으로 조작 한 사운드의 복사본을 작성하려고합니다.하지만 시도 할 때마다 파일은 매우 작습니다 (< 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"이 생성 한 새 파일이 될 원하는이다 ,하지만 전혀 만들지 않습니다.
어쩌면 ByteArrayOutputStream 또는 이와 유사한 –
가능한 복제본 [임시 파일없이 Java에서 WAV 바이트 배열로 오디오 스트림 변환] (http://stackoverflow.com/questions/198679/convert-audio-stream-to-wav-byte) -yray-in-java-without-temp-file) – BevynQ
나는 가이드를 사용하여 그것을 편집하는 방법에 관해서는 매우 혼란 스럽다. – TheDkmariolink