我有一个通过网页记录声音的 Java 小程序。保存在磁盘上的操作是由一个内部类进行的,它是一个线程:
class saveThread extends Thread {
public void run() {
AudioFileFormat.Type fileType = AudioFileFormat.Type.WAVE;
FileDialog fd = new FileDialog(new Frame(), "Save as WAVE", FileDialog.SAVE);
fd.setFile("*.wav");
fd.setVisible(true);
String name = fd.getDirectory() + fd.getFile();
File file = new File(name);
try {
byte audio[] = out.toByteArray();
InputStream input = new ByteArrayInputStream(audio);
final AudioFormat format = getFormat();
final AudioInputStream ais = new AudioInputStream(input, format, audio.length / format.getFrameSize());
AudioSystem.write(ais, fileType, file);
} catch (Exception e) {
e.printStackTrace();
}
}
}//End of inner class saveThread
问题是当我在网页中执行小程序时,保存在磁盘上的操作不起作用。但是当我直接执行小程序时,它就像一个魅力,这就是为什么我认为问题可能是浏览器不支持小程序线程。