
AudioCLip主要的方法有:play()播放依次声音;loop()循环播放音乐;stop()停止播放。
做法一:
InputStream is =null
AudioStream as = null
is = getClass().getResourceAsStream("a.wav")
try {
as = new AudioStream(is)
} catch (IOException e) {}
AudioPlayer.player.start(as)
此方法将音乐文件放入流中在播放,仅限于Java Application,容易报错,空指针异常,或者是流异常,不推荐。
做法二:
String music = "a.wav"
AudioClip clip = Applet.newAudioClip(getClass().getResource(music))
次方法在Applet中运行没有问题,但是Application中getclass()会返回空指针,导致失败。
推荐做法:
private URL url
private AudioClip ac
File f1 = new File("C:/3.wav")
try {
url= f1.toURL()
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace()
}
ac= Applet.newAudioClip(cb1)
ac.play()
public class Sing {public void sing(String fileName) {// fileName为加载声音文件的相对路径
URL url = test.class.getResource(fileName)//
// 此句不要的话,fileName就只能是声音文件的绝对路径,为可移
// 植起见,建议不要省略
try {
InputStream is = url.openStream()// 获得音乐文件的输入流
//InputStream is = new FileInputStream(new File(fileName))
AudioStream as = new AudioStream(is)
AudioPlayer.player.start(as)// 用AudioPlayer静态成员player.start播放音乐
} catch (FileNotFoundException e) {
JOptionPane.showMessageDialog(null, "音乐文件未找到!", "错误提 示",
JOptionPane.WARNING_MESSAGE)
} catch (IOException e) {
JOptionPane.showMessageDialog(null, "出现未知错误!", "错 误",
JOptionPane.ERROR_MESSAGE)
}
}
public void loopSing(final String fileName) {// fileName为加载声音文件的相对路径
final URL url = test.class.getResource(fileName)//
// 此句不要的话,fileName就只能是声音文件的绝对路径,为可移
// 植起见,建议不要省略
new Thread() {
public void run() {
while (true) {
try {
InputStream is = url.openStream()
AudioStream as = new AudioStream(is)
AudioPlayer.player.start(as)// 用AudioPlayer静态成员player.start播放音乐
Thread.sleep(57500)
} catch (FileNotFoundException e) {
JOptionPane.showMessageDialog(null, "音乐文件未找到!",
"错误提 示", JOptionPane.WARNING_MESSAGE)
} catch (IOException e) {
JOptionPane.showMessageDialog(null, "出现未知错误!", "错 误",
JOptionPane.ERROR_MESSAGE)
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace()
}
}
}
}.start()
}
}
以前写的一段代码。你看看吧。好像只能播放wav格式的
URL url = test.class.getResource(fileName)
test是和wav放在同一个文件夹下的Java类,用来做标识的,里面没东西。
public class Sound {public static void main(String args[]) {
try {
FileInputStream fileau = new FileInputStream(new File("c:/a.wav"))
AudioStream as = new AudioStream(fileau)
AudioPlayer.player.start(as)
} catch (Exception e) {
}
}
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)