0

Web ページからサウンドを録音する 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

問題は、Web ページでアプレットを実行すると、ディスクへの保存操作が機能しないことです。しかし、私がアプレットを直接実行しているとき、それは魅力のように機能します。そのため、おそらく問題は、ブラウザーがアプレットのスレッドをサポートしていないことだと思いました。

4

1 に答える 1