Java 编写一个简单的音乐播放器

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 的文件中,然后在命令行中导航到该文件所在的目录,并键入以下命令:

javac MusicPlayer.java
java MusicPlayer

这将编译并运行该程序,并在命令行窗口中播放指定的音乐文件。注意,该程序只支持一些特定格式的音频文件,如 WAV、AU、AIFF 等。如果您想要播放 MP3 或其他格式的音频文件,您需要使用额外的库或 API。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java 中可以使用 `javax.sound.sampled` 包中的 API 来实现音乐播放器。以下是一个简单的例子: ```java import javax.sound.sampled.*; import java.io.File; import java.io.IOException; public class MusicPlayer { private Clip clip; public MusicPlayer(String filePath) throws UnsupportedAudioFileException, IOException, LineUnavailableException { AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File(filePath)); clip = AudioSystem.getClip(); clip.open(audioInputStream); } public void play() { clip.start(); } public void stop() { clip.stop(); clip.setFramePosition(0); } public void loop() { clip.loop(Clip.LOOP_CONTINUOUSLY); } public static void main(String[] args) throws Exception { MusicPlayer player = new MusicPlayer("music.wav"); player.play(); Thread.sleep(5000); player.stop(); } } ``` 在上面的例子中,我们首先创建了一个 `MusicPlayer` 类来封装音乐播放器的功能。在类的构造函数中,我们使用 `AudioSystem.getAudioInputStream()` 方法来读取音频文件,并使用 `AudioSystem.getClip()` 方法创建一个 `Clip` 对象,然后调用 `Clip.open()` 方法打开音频流并将其加载到 `Clip` 中。接着,我们定义了 `play()`、`stop()` 和 `loop()` 方法来播放、停止和循环播放音频。 在 `main()` 方法中,我们创建了一个 `MusicPlayer` 对象,并调用 `play()` 方法播放音乐。然后我们让主线程休眠 5 秒钟,最后调用 `stop()` 方法停止音乐播放。 需要注意的是,以上代码仅支持 WAV 格式的音频文件,如果想要支持其他格式的音频文件,需要使用不同的 `AudioInputStream` 和 `AudioFormat`。另外,以上代码只是一个简单的示例,如果想要实现更完整的音乐播放器,还需要处理音乐播放进度、音量控制、歌词显示等功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值