import javax.sound.sampled.*;
import java.io.*;
public class MusicPlayer {
private Clip clip;
public void play(String filePath) {
try {
File audioFile = new File(filePath);
AudioInputStream audioStream = AudioSystem.getAudioInputStream(audioFile);
AudioFormat format = audioStream.getFormat();
DataLine.Info info = new DataLine.Info(Clip.class, format);
clip = (Clip) AudioSystem.getLine(info);
clip.open(audioStream);
clip.start();
} catch (UnsupportedAudioFileException | LineUnavailableException | IOException e) {
e.printStackTrace();
}
}
public void stop() {
if (clip != null && clip.isRunning()) {
clip.stop();
clip.close();
}
}
public static void main(String[] args) {
MusicPlayer player = new MusicPlayer();
player.play("music.mp3");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
player.stop();
}
}
在上面的代码中,我们定义了一个名为 MusicPlayer 的类,其中包含三个方法:play、stop 和 main。
play 方法接受一个文件路径作为参数,使用 Java 的音频输入输出 API 加载指定的音频文件,并将其播放。我们首先创建一个 File 对象,然后使用 AudioSystem.getAudioInputStream 方法将文件读入 AudioInputStream 中。接下来,我们获取音频流的格式,并使用 DataLine.Info 对象指定要创建的 Clip 类型和格式。最后,我们打开 Clip 并将音频流写入其中,然后开始播放音乐。
stop 方法停止当前正在播放的音乐。我们首先检查 Clip 是否正在运行,然后停止它并关闭它。
在 main 方法中,我们创建一个 MusicPlayer 实例并调用 play 方法来播放音乐。然后,我们让主线程等待 5 秒钟,以便播放器可以播放足够长的时间。最后,我们调用 stop 方法来停止播放音乐。
要运行此代码,请将其保存在名为 MusicPlayer.java 的文件中,然后在命令行中导航到该文件所在的目录,并键入以下命令:
Copy code
javac MusicPlayer.java
java MusicPlayer
这将编译并运行该程序,并在命令行窗口中播放指定的音乐文件。注意,该程序只支持一些特定格式的音频文件,如 WAV、AU、AIFF 等。如果您想要播放 MP3 或其他格式的音频文件,您需要使用额外的库或 API。