Java 如何将声音(WAV)写入文件
所以,我要写一份我操纵的声音的副本,转换成可播放的格式,但每当我尝试它时,文件都非常小(<1kb),它们不会播放,很可能是因为它不是可读的数据。这是密码Java 如何将声音(WAV)写入文件,java,file,audio,Java,File,Audio,所以,我要写一份我操纵的声音的副本,转换成可播放的格式,但每当我尝试它时,文件都非常小(
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);
}
}
}
我希望“thisistest_pause.wav”是它创建的新文件,但它根本不创建一个 因为myWordArray[i]是一个对象。因此它会将myWordArray[i].toString()写入文件,而不是声音。
您正在使用来自的声音#阻止播放()。如果是,它有writeToFile()方法将声音写入文件。可能是ByteArrayOutputStream,也可能是我编辑它并声明错误的类似副本,即使使用指南,也会对如何操作感到非常困惑。
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\\");