-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」是它創建新文件,但它根本不創建。
也許是一個ByteArrayOutputStream或類似 –
可能重複的[轉換音頻流到WAV字節數組在Java中沒有臨時文件](http://stackoverflow.com/questions/198679/convert-audio-stream-to-wav-byte -array-in-java-without-temp-file) – BevynQ
我編輯了它並說明了我的錯誤,對於如何做到這一點甚至在使用指南時都很困惑。 – TheDkmariolink