使用java实现音乐播放

使用java实现音乐播放的具体代码

  1. 调用有参构造器,构造器中传入需要播放的音乐路径,文件需要是.wav格式
  2. 调用start方法播放音乐,设置为从头开始循环播放
  3. 暂停调用pause方法暂停,暂停保存当前播放进度的毫秒值
  4. 继续播放调用recommence方法,会读取刚才保存的音乐播放进度的毫秒值
  5. 调用stop方法暂停播放,关流
点击查看代码
import javax.sound.sampled.*;
import java.io.File;
/**
 * @ClassName AudioPlay
 * @Description TODO
 * @Author 阡陌
 * @Date 2023/4/13 20:27
 * @Version 1.0
 * @PackageName com.itheima.Test
 */

public class AudioPlay {
    //音频文件输入流
    private  AudioInputStream aio;
    //控制器
    private Clip bgm;
    //在暂停和继续音乐时保存文件的毫秒数
    private Long microsecondPosition;

    private AudioPlay(){};
    /*
        构造器,传入要播放的音乐地址
        filePath=音频文件的地址,用于创建file对象,以及后续的音频流对象
     */
    public AudioPlay(String filePath) {
        try {
            //创建音频对象
            this.bgm=AudioSystem.getClip();
            //创建流
            this.aio = AudioSystem.getAudioInputStream(new File(filePath));
            //开启流
            bgm.open(aio);
        } catch (Exception e) {
            System.err.println("音频文件初始化失败");
        }
    }
    /**
        播放音乐
     */
    public void start(){
        //播放音乐
        bgm.setMicrosecondPosition(0);
        bgm.start();
        bgm.loop(Clip.LOOP_CONTINUOUSLY);
    }

    /**
        暂停音乐
     */
    public void pause(){
        //保存当前时间点
       microsecondPosition= bgm.getMicrosecondPosition();
       //暂停音乐
       bgm.stop();
    }
    /**
        继续播放
     */
    public void recommence(){
        //设置上一次暂停位置的毫秒值
        bgm.setMicrosecondPosition(microsecondPosition);
        //从设置位置继续播放
        bgm.start();
    }
    /**
        结束播放
     */
    public void stop(){
        //中断播放
        bgm.stop();
        //关闭流
        bgm.close();
    }

}
posted @   阡陌QVQ  阅读(156)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示