Java2实用教程(第二版)程序代码——第二十四章 Java与多媒体
1
//例子1
2
import java.applet.*;import java.awt.*;
3
import java.awt.event.*;
4
public class Example24_1 extends Applet implements ActionListener
5
{ AudioClip clip;//声明一个音频对象
6
Button button_play,button_loop,button_stop;
7
public void init()
8
{ clip=getAudioClip(getCodeBase(),"1.au");
9
//根据程序所在的地址处的声音文件1.au创建音频对象,Applet类的
10
// getCodeBase() 方法可以获得小程序所在的html页面的URL地址。
11
button_play=new Button("开始播放");button_loop=new Button("循环播放");
12
button_stop=new Button("停止播放");button_play.addActionListener(this);
13
button_stop.addActionListener(this);button_loop.addActionListener(this);
14
add(button_play);add(button_loop);add(button_stop);
15
}
16
public void stop()
17
{ clip.stop();//当离开此页面时停止播放。
18
}
19
public void actionPerformed(ActionEvent e)
20
{ if(e.getSource()==button_play)
21
{ clip.play();}
22
else if(e.getSource()==button_loop)
23
{ clip.loop();}
24
if(e.getSource()==button_stop)
25
{ clip.stop();}
26
}
27
}
28![]()
29
//例子2
30
import java.applet.*;import java.awt.*;import java.awt.event.*;
31
public class Example24_2 extends Applet implements ActionListener,Runnable,ItemListener
32
{ AudioClip clip;//声明一个音频对象。
33
Choice choice;
34
TextField text;
35
Thread thread;
36
String item=null;
37
Button button_play,button_loop,button_stop;
38
public void init()
39
{ choice=new Choice();
40
thread=new Thread(this);
41
int N=Integer.parseInt(getParameter("总数"));
42
for(int i=1;i<=N;i++)
43
{ choice.add(getParameter(String.valueOf(i)));
44
}
45
button_play=new Button("开始播放");
46
button_loop=new Button("循环播放");
47
button_stop=new Button("停止播放");
48
text=new TextField(12);
49
button_play.addActionListener(this);
50
button_stop.addActionListener(this);
51
button_loop.addActionListener(this);
52
choice.addItemListener(this);
53
add(choice);
54
add(button_play);add(button_loop);add(button_stop); add(text);
55
button_play.setEnabled(false);
56
button_loop.setEnabled(false);
57
}
58
public void itemStateChanged(ItemEvent e)
59
{ item=choice.getSelectedItem();
60
int index=item.indexOf(":");
61
item=item.substring(index+1).trim();
62
if(!(thread.isAlive()))
63
{ thread=new Thread(this);
64
}
65
try {
66
thread.start();
67
}
68
catch(Exception exp)
69
{ text.setText("正在下载音频文件");
70
}
71
}
72
public void stop()
73
{ clip.stop();
74
}
75
public void actionPerformed(ActionEvent e)
76
{ if(e.getSource()==button_play)
77
{ clip.play();
78
}
79
else if(e.getSource()==button_loop)
80
{ clip.loop();
81
}
82
else if(e.getSource()==button_stop)
83
{ clip.stop();
84
button_play.setEnabled(false);
85
button_loop.setEnabled(false);
86
}
87
}
88
public void run()
89
{
90
clip=getAudioClip(getCodeBase(),item);
91
text.setText("请稍等
");
92
if(clip!=null)
93
{ button_play.setEnabled(true);
94
button_loop.setEnabled(true);
95
text.setText("您可以播放了");
96
}
97
}
98
}
99![]()
100
//例子3
101
import java.applet.*;import java.awt.*;
102
import java.net.*;import java.awt.event.*;
103
import java.io.*;import javax.media.*;
104
public class Example24_3 extends Applet
105
implements ControllerListener,Runnable,ItemListener
106
{ Player player;
107
String str;
108
Thread mythread;
109
Choice choice;
110
Component visualComponent,controlComponent,progressBar;
111
String mediaFile;
112
URL mediaURL,codeBase;
113
Frame frame;
114
public void init()
115
{ str="Music01.MPG";
116
mythread=new Thread(this);
117
choice=new Choice();
118
choice.add("Music01.MPG");
119
choice.add("Music02.avi");
120
choice.add("Music03.avi");
121
choice.addItemListener(this);
122
codeBase=getDocumentBase();
123
frame=new Frame("视频系统");
124
frame.setSize(660,580);
125
frame.addWindowListener(new WindowAdapter()
126
{ public void windowClosing(WindowEvent e)
127
{ if(player!=null)
128
{ player.stop();player.deallocate();
129
}
130
frame.setVisible(false);
131
System.exit(0);
132
}
133
});
134
add(choice);
135
}
136
public void stop()
137
{ if(player!=null)
138
{ player.stop();
139
}
140
}
141
public synchronized void controllerUpdate(ControllerEvent event)
142
{ player.getDuration();
143
if(event instanceof RealizeCompleteEvent)
144
{ if((visualComponent=player.getVisualComponent())!=null)
145
frame.add("Center",visualComponent);
146
if((controlComponent=player.getControlPanelComponent())!=null)
147
if(visualComponent!=null)
148
frame.add("South",controlComponent);
149
else
150
frame.add( "Center",controlComponent);
151
frame.validate();
152
frame.pack();
153
}
154
else if(event instanceof PrefetchCompleteEvent)
155
{ player.start();
156
}
157
}
158
public void itemStateChanged(ItemEvent e)
159
{
160
str=choice.getSelectedItem();
161
if(player==null)
162
{
163
}
164
else
165
{ player.stop();player.deallocate();
166
}
167
frame.removeAll();
168
frame.setVisible(true);
169
frame.setBounds(300,100,150,100);
170
frame.validate();
171
if(!(mythread.isAlive()))
172
{ mythread=new Thread(this);
173
}
174
try{
175
mythread.start();
176
}
177
catch(Exception ee)
178
{
179
}
180
}
181
public synchronized void run()
182
{ try{ mediaURL=new URL(codeBase,str);
183
player=Manager.createPlayer(mediaURL);player.getDuration();
184
if(player!=null)
185
{ player.addControllerListener(this);
186
}
187
else
188
System.out.println("failed to creat player for"+mediaURL);
189
}
190
catch(MalformedURLException e)
191
{ System.out.println("URL for"+mediaFile+"is invalid");
192
}
193
catch(IOException e)
194
{ System.out.println("URL for"+mediaFile+"is invalid");
195
}
196
catch(NoPlayerException e)
197
{ System.out.println("canot find a player for"+mediaURL);
198
}
199
if(player!=null)
200
{ player.prefetch();
201
}
202
}
203
}
204![]()
//例子12
import java.applet.*;import java.awt.*;3
import java.awt.event.*;4
public class Example24_1 extends Applet implements ActionListener5
{ AudioClip clip;//声明一个音频对象6
Button button_play,button_loop,button_stop;7
public void init()8
{ clip=getAudioClip(getCodeBase(),"1.au");9
//根据程序所在的地址处的声音文件1.au创建音频对象,Applet类的10
// getCodeBase() 方法可以获得小程序所在的html页面的URL地址。11
button_play=new Button("开始播放");button_loop=new Button("循环播放");12
button_stop=new Button("停止播放");button_play.addActionListener(this);13
button_stop.addActionListener(this);button_loop.addActionListener(this); 14
add(button_play);add(button_loop);add(button_stop); 15
} 16
public void stop()17
{ clip.stop();//当离开此页面时停止播放。18
}19
public void actionPerformed(ActionEvent e)20
{ if(e.getSource()==button_play)21
{ clip.play();}22
else if(e.getSource()==button_loop)23
{ clip.loop();}24
if(e.getSource()==button_stop)25
{ clip.stop();} 26
}27
}28

29
//例子230
import java.applet.*;import java.awt.*;import java.awt.event.*;31
public class Example24_2 extends Applet implements ActionListener,Runnable,ItemListener32
{ AudioClip clip;//声明一个音频对象。33
Choice choice;34
TextField text;35
Thread thread;36
String item=null;37
Button button_play,button_loop,button_stop;38
public void init()39
{ choice=new Choice();40
thread=new Thread(this); 41
int N=Integer.parseInt(getParameter("总数"));42
for(int i=1;i<=N;i++)43
{ choice.add(getParameter(String.valueOf(i))); 44
} 45
button_play=new Button("开始播放"); 46
button_loop=new Button("循环播放");47
button_stop=new Button("停止播放"); 48
text=new TextField(12);49
button_play.addActionListener(this); 50
button_stop.addActionListener(this);51
button_loop.addActionListener(this); 52
choice.addItemListener(this);53
add(choice);54
add(button_play);add(button_loop);add(button_stop); add(text); 55
button_play.setEnabled(false);56
button_loop.setEnabled(false); 57
} 58
public void itemStateChanged(ItemEvent e)59
{ item=choice.getSelectedItem();60
int index=item.indexOf(":");61
item=item.substring(index+1).trim();62
if(!(thread.isAlive()))63
{ thread=new Thread(this); 64
} 65
try {66
thread.start();67
}68
catch(Exception exp)69
{ text.setText("正在下载音频文件");70
}71
}72
public void stop()73
{ clip.stop();74
}75
public void actionPerformed(ActionEvent e)76
{ if(e.getSource()==button_play)77
{ clip.play();78
}79
else if(e.getSource()==button_loop)80
{ clip.loop();81
}82
else if(e.getSource()==button_stop)83
{ clip.stop();84
button_play.setEnabled(false);85
button_loop.setEnabled(false);86
} 87
}88
public void run()89
{ 90
clip=getAudioClip(getCodeBase(),item);91
text.setText("请稍等
");92
if(clip!=null)93
{ button_play.setEnabled(true);94
button_loop.setEnabled(true);95
text.setText("您可以播放了");96
} 97
}98
}99

100
//例子3101
import java.applet.*;import java.awt.*;102
import java.net.*;import java.awt.event.*;103
import java.io.*;import javax.media.*;104
public class Example24_3 extends Applet105
implements ControllerListener,Runnable,ItemListener106
{ Player player;107
String str; 108
Thread mythread;109
Choice choice;110
Component visualComponent,controlComponent,progressBar;111
String mediaFile;112
URL mediaURL,codeBase;113
Frame frame;114
public void init()115
{ str="Music01.MPG"; 116
mythread=new Thread(this);117
choice=new Choice();118
choice.add("Music01.MPG");119
choice.add("Music02.avi");120
choice.add("Music03.avi");121
choice.addItemListener(this);122
codeBase=getDocumentBase();123
frame=new Frame("视频系统");124
frame.setSize(660,580);125
frame.addWindowListener(new WindowAdapter()126
{ public void windowClosing(WindowEvent e)127
{ if(player!=null)128
{ player.stop();player.deallocate(); 129
}130
frame.setVisible(false);131
System.exit(0);132
} 133
});134
add(choice);135
} 136
public void stop()137
{ if(player!=null)138
{ player.stop();139
}140
}141
public synchronized void controllerUpdate(ControllerEvent event)142
{ player.getDuration();143
if(event instanceof RealizeCompleteEvent)144
{ if((visualComponent=player.getVisualComponent())!=null)145
frame.add("Center",visualComponent);146
if((controlComponent=player.getControlPanelComponent())!=null)147
if(visualComponent!=null)148
frame.add("South",controlComponent);149
else150
frame.add( "Center",controlComponent);151
frame.validate();152
frame.pack();153
}154
else if(event instanceof PrefetchCompleteEvent)155
{ player.start(); 156
}157
}158
public void itemStateChanged(ItemEvent e)159
{ 160
str=choice.getSelectedItem();161
if(player==null)162
{163
}164
else165
{ player.stop();player.deallocate(); 166
}167
frame.removeAll();168
frame.setVisible(true);169
frame.setBounds(300,100,150,100);170
frame.validate();171
if(!(mythread.isAlive()))172
{ mythread=new Thread(this);173
}174
try{175
mythread.start();176
}177
catch(Exception ee)178
{179
}180
}181
public synchronized void run()182
{ try{ mediaURL=new URL(codeBase,str);183
player=Manager.createPlayer(mediaURL);player.getDuration();184
if(player!=null)185
{ player.addControllerListener(this);186
}187
else188
System.out.println("failed to creat player for"+mediaURL);189
}190
catch(MalformedURLException e)191
{ System.out.println("URL for"+mediaFile+"is invalid");192
}193
catch(IOException e)194
{ System.out.println("URL for"+mediaFile+"is invalid");195
}196
catch(NoPlayerException e)197
{ System.out.println("canot find a player for"+mediaURL);198
}199
if(player!=null)200
{ player.prefetch(); 201
}202
}203
}204



浙公网安备 33010602011771号