用JAVA播放D盘的一个WAV音乐代码 哪里错了

来源:百度知道 编辑:UC知道 时间:2024/07/03 00:48:07
package autoPressKey;

import java.applet.Applet;
import java.applet.AudioClip;
import java.net.MalformedURLException;
import java.net.URL;

public class Music {
public URL musicURL;
public Applet app;
public Music(String musicURL){
app=new Applet();
try {
this.musicURL=new URL(musicURL);
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
String s="file://D:/青花瓷.wav";
Music mus=new Music(s);
AudioClip ac=mus.app.getAudioClip(mus.musicURL);
ac.play();
}
}
抛的异常
Exception in thread "main" java.lang.NullPointerException
at java.applet.Applet.getAppletContext(Unknown Source)
at java.applet.Applet.getAudioClip(Unknown Source)
at autoPressKey.Music.main(Music.java:23)
是我URL写的有问题么?

Applet有一个属性,类型为AppletStub。
你的Applet没有在页面中,AppletStub属性就会为null。

如果你想编写java的音频播放器,请使用jmf。
1、安装windows版jmf(当然,你的操作系统是windows)
2、把%安装目录%\lib\jmf.jar添加到classpath
注意:不能只是下载一个jmf.jar文件,然后添加到classpath,这是不行的。你需要安装jmf。

import java.io.File;
import java.io.IOException;

import javax.media.CannotRealizeException;
import javax.media.Manager;
import javax.media.NoPlayerException;
import javax.media.Player;

public class MyPlayer {
private static String path = "杀破狼.mp3";

public static void main(String[] args) {
File f1 = new File(path);
try {
Player player = Manager.createRealizedPlayer(f1.toURI().toURL());
player.prefetch();
player.start();
} catch (CannotRealizeException ex) {
} catch (NoPlayerException ex) {
}