2013-09-29 4 views
0

У меня есть 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 

Проблема является сохранение на диске операции не работает, когда я выполнить апплет в веб-страницы. Но когда я выполняю непосредственно апплет, он работает как шарм, поэтому я подумал, что, возможно, проблема в том, что браузеры не поддерживают потоки апплетов.

+0

_ Проблема в том, что операция сохранения на диске не работает, когда я выполняю апплет на веб-странице. Это, вероятно, означает, что у вашего апплета нет разрешений на запись на диск. – BackSlash

+0

как? можете ли вы объяснить больше, пожалуйста? –

+0

Вы можете использовать [контроллер доступа] (http://docs.oracle.com/javase/6/docs/api/java/security/AccessController.html), если ваш апплет вызывается из ненадежного источника (например, JavaScript). – Yann39

ответ

2

JAVA Applet поддерживает многопоточность. Однако убедитесь, что ваш апплет имеет привилегию или песочницу. От java applet documentation page

Рекомендуется, чтобы вы запустите апплет с помощью Java Network Launch Protocol (JNLP), чтобы использовать расширенные возможности и улучшения пользовательского опыта. См. Раздел Развертывание апплета для пошаговых инструкций по развертыванию апплетов.

А При запуске с помощью JNLP, песочница апплеты также могут выполнять следующие операции:

  1. Они могут открывать, читать и сохранять файлы на клиенте.
  2. Доступ к общему общему буферу.
  3. Они могут получить доступ к функциям печати.
  4. Они могут хранить данные на клиенте, решать, как апплеты должны быть загружены и кэшированы, и многое другое.
+0

Bravo !! Спасибо ! –

Смежные вопросы