The Java Program: AudioApplet.java
1 import java.applet.Applet;
2 import java.applet.AudioClip;
3
4 import java.awt.Frame;
5 import java.awt.List;
6 import java.awt.event.WindowEvent;
7 import java.awt.event.WindowAdapter;
8 import java.awt.event.ItemEvent;
9 import java.awt.event.ItemListener;
10
11 import java.io.File;
12 import java.io.IOException;
13 import java.io.EOFException;
14
15 /*
16 <applet code=AudioApplet width=200 height=400>
17 </applet>
18 */
19
20 public class AudioApplet extends Applet {
21
22 public void init () {
23 final List list = new List (0, false);
24 String [] audio_files = files (".", ".au");
25 for (int i=0; i<audio_files.length; i++) {
26 list.addItem (audio_files[i]);
27 }
28 class Listener implements ItemListener {
29 public void itemStateChanged (ItemEvent event) {
30 // ItemSelectable l = event.getItemSelectable();
31 System.out.println ("play " + list.getSelectedItem());
32 AudioClip clip = getAudioClip (getCodeBase(), list.getSelectedItem());
33 clip.play();
34 }
35 }
36 list.addItemListener (new Listener ());
37 add (list);
38 setVisible (true);
39 }
40
41 private static String [] files (String dir, String suffix) {
42 final File fd = new File(dir);
43 final String [] allf = fd.list();
44 int n=0, j=0;
45
46 // count the files
47 for(int i=0; i<allf.length; i++) {
48 final File fd1 = new File (fd.getPath(), allf[i]);
49 final String name = fd1.getName();
50 if (fd1.isFile() && name.endsWith(suffix)) {
51 n++;
52 }
53 }
54
55 String [] files = new String [n];
56 for(int i=0; i<allf.length; i++) {
57 final File fd1 = new File (fd.getPath(), allf[i]);
58 final String name = fd1.getName();
59 if (fd1.isFile() && name.endsWith(suffix)) {
60 files[j++] = name;
61 }
62 }
63 return files;
64 }
65 }