import javax.sound.sampled.*;
import java.io.File;
import java.io.IOException;
import java.util.Scanner;public class MusicPlayer {
private Clip clip;
private FloatControl volumeControl;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);// 获取音量控制
volumeControl = (FloatControl) clip.getControl(FloatControl.Type.MASTER_GAIN);// 播放音乐
clip.start();
} catch (UnsupportedAudioFileException | LineUnavailableException | IOException e) {
e.printStackTrace();
}
}public void pause() {
if (clip != null && clip.isRunning()) {
clip.stop();
}
}public void resume() {
if (clip != null && !clip.isRunning()) {
clip.start();
}
}public void setVolume(float value) {
if (volumeControl != null) {
value = Math.max(volumeControl.getMinimum(), Math.min(volumeControl.getMaximum(), value));
volumeControl.setValue(value);
}
}public static void main(String[] args) {
MusicPlayer player = new MusicPlayer();
player.play("path/to/your/music/file.wav");// 从控制台读取用户输入来控制播放器
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("请选择操作: 1-暂停, 2-继续, 3-调节音量, 4-退出");
int choice = scanner.nextInt();
switch (choice) {
case 1:
player.pause();
break;
case 2:
player.resume();
break;
case 3:
System.out.println("请输入音量值 (-80.0 到 6.0206):");
float volume = scanner.nextFloat();
player.setVolume(volume);
break;
case 4:
player.stop();
System.exit(0);
default:
System.out.println("无效的选择");
}
}
}
}
想不想自写代码写一个音乐播放器
最新推荐文章于 2025-12-15 08:57:28 发布
4万+

被折叠的 条评论
为什么被折叠?



