四、从网络上获取声音
Java从网络上获取声音文件并播放声音的编程方法有两类,一是利用Java提供的play(URL)及play(URL,String) 直接播放网络上的声音文件,另一类是通过getAudioClip(URL)或getAudioClip (URL,String)先从网络上获取声音文件,并生成AudioClip 类型的对象,然后对该对象进行操作。
前者的使用格式是:
String Audur = "结点URL";
try {
play(new URL(Audur));
} catch(Exception e){}
或
String Audur = "结点URL";
try {
play(new URL(Audur),声音文件名);
} catch(Exception e){}
后者使用的格式是:
String Audur = "结点URL";
AudioClip loopClip;
try {
loopClip = getAudioClip(new URL(Audur));
}
catch(Exception e){
System.out.println("Can´t open the URL ");
}
或
String Audur = "结点URL";
AudioClip loopClip;
try {
loopClip = getAudioClip(new URL(Audur) ,声音文件名);
}
catch(Exception e){
System.out.println("Can´t open the URL ");
}
上面的四种格式都是将生成URL对象部分--“new URL(url)” 直接作为play或getAudioClip的参数;和前面处理图象的例子一样,也可以先用“new URL(url)”获取一个URL对象, 再传给 play 或
getAudioClip。如对第一种play(URL)的格式, 也可采用如下的编程格式:
URL Audur =null;
try {
Audur=new URL("结点URL ");
} catch(Exception e){
System.out.println("Can´t open the URL ");
}
play(Audur);
下面对前述四种从网络上获取并播放声音文件的格式各举一简单的例子,以作编程时参考:
●程序4 格式一
import java.applet.*;
import java.awt.*;
import java.net.*;
public class sound1 extends Applet
{ AudioClip loopClip;
public void paint(Graphics g) {
String Audur = "http://www.shu.edu.cn/~xyx/java/Animator/audio/bark.au";
try {
play(new URL(Audur));
} catch(Exception e){}
}
}
●程序5 格式二
import java.applet.*;
import java.awt.*;
import java.net.*;
public class sound2 extends Applet
{ AudioClip loopClip;
public void paint(Graphics g) {
String Audur = "http://www.shu.edu.cn/~xyx/java/Animator/audio/";
try {
play(new URL(Audur),"bark.au");
} catch(Exception e){}
}
}
●程序6 格式三
import java.applet.*;
import java.awt.*;
import java.net.*;
public class sound extends Applet{
AudioClip loopClip;
public void init() {
String Audur = "http://www.shu.edu.cn/~xyx/java/Animator/audio/bark.au";
try {
loopClip = getAudioClip(new URL(Audur));
} catch(Exception e){}
}