我有一個通過網頁記錄聲音的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