У меня есть Java-апплет, который записывает звук через веб-страницу. Операция сохранения-на-диске производится внутренним классом, который является резьба:Поддерживает ли браузер поддержку потоков 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
Проблема является сохранение на диске операции не работает, когда я выполнить апплет в веб-страницы. Но когда я выполняю непосредственно апплет, он работает как шарм, поэтому я подумал, что, возможно, проблема в том, что браузеры не поддерживают потоки апплетов.
_ Проблема в том, что операция сохранения на диске не работает, когда я выполняю апплет на веб-странице. Это, вероятно, означает, что у вашего апплета нет разрешений на запись на диск. – BackSlash
как? можете ли вы объяснить больше, пожалуйста? –
Вы можете использовать [контроллер доступа] (http://docs.oracle.com/javase/6/docs/api/java/security/AccessController.html), если ваш апплет вызывается из ненадежного источника (например, JavaScript). – Yann39