写一个Java程序实现以上要求
时间: 2024-03-21 08:42:07 浏览: 57
Java操作另一个Java程序使其重启的简单实现
好的,以下是一个简单的Java程序,实现了一个音乐播放器的基本功能:
```
import javax.swing.*;
import javax.sound.sampled.*;
import java.io.*;
public class MusicPlayer extends JFrame implements Runnable {
private JButton playButton, pauseButton, stopButton;
private JLabel statusLabel;
private JProgressBar progressBar;
private Clip clip;
private AudioInputStream audioInputStream;
private Thread audioThread;
private boolean isPlaying;
public MusicPlayer() {
setTitle("音乐播放器");
setSize(400, 150);
setLayout(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
playButton = new JButton("播放");
playButton.setBounds(20, 20, 80, 30);
playButton.addActionListener(e -> play());
add(playButton);
pauseButton = new JButton("暂停");
pauseButton.setBounds(110, 20, 80, 30);
pauseButton.addActionListener(e -> pause());
add(pauseButton);
stopButton = new JButton("停止");
stopButton.setBounds(200, 20, 80, 30);
stopButton.addActionListener(e -> stop());
add(stopButton);
statusLabel = new JLabel("未播放");
statusLabel.setBounds(20, 60, 80, 20);
add(statusLabel);
progressBar = new JProgressBar();
progressBar.setBounds(110, 60, 270, 20);
add(progressBar);
setVisible(true);
}
private void play() {
if (clip != null && clip.isRunning()) {
return;
}
try {
audioInputStream = AudioSystem.getAudioInputStream(new File("music.wav"));
AudioFormat format = audioInputStream.getFormat();
DataLine.Info info = new DataLine.Info(Clip.class, format);
clip = (Clip) AudioSystem.getLine(info);
clip.open(audioInputStream);
clip.start();
isPlaying = true;
audioThread = new Thread(this);
audioThread.start();
statusLabel.setText("正在播放");
} catch (Exception ex) {
ex.printStackTrace();
}
}
private void pause() {
if (clip != null && clip.isRunning()) {
clip.stop();
isPlaying = false;
statusLabel.setText("已暂停");
}
}
private void stop() {
if (clip != null) {
clip.stop();
clip.close();
progressBar.setValue(0);
isPlaying = false;
statusLabel.setText("已停止");
}
}
public void run() {
while (isPlaying) {
progressBar.setValue((int) (clip.getMicrosecondPosition() / 1000));
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
new MusicPlayer();
}
}
```
这个程序使用了Java的Swing界面库来创建一个简单的音乐播放器界面,包括三个按钮(播放、暂停、停止)、一个状态标签和一个进度条。在播放按钮被按下时,程序会尝试打开一个名为"music.wav"的音频文件,并使用JavaSound API的Clip类来播放音乐。播放时,程序会启动一个新的线程来处理进度条的更新。暂停和停止按钮分别暂停和停止正在播放的音乐。
请注意,这个程序只是一个简单的例子,还有很多地方需要完善,比如错误处理和音乐格式的支持等。如果您想要实现更完整的音乐播放器,建议参考JavaSound API的官方文档,深入学习其API和使用方法。
阅读全文