我有一个通过网页记录声音的Java Applet。 保存,磁盘上的操作是通过一个内部类是主题进行:浏览器是否支持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
的问题是对磁盘操作保存不工作,当我在一个网页执行的小程序。但是当我直接执行applet时,它就像一个魅力,所以我认为可能问题是浏览器不支持applet线程。
_问题是当我在网页中执行小程序时磁盘操作保存不起作用._这可能意味着您的小程序没有写入磁盘的权限。 – BackSlash
怎么样?你能解释更多吗? –
如果您的applet是从不可信来源(如JavaScript)调用的,则可以使用[访问控制器](http://docs.oracle.com/javase/6/docs/api/java/security/AccessController.html)。 – Yann39