Java中添加背景音乐【更新 播放/暂停】
运行时播放背景音乐
调用方法
new Thread(()->{while(true) {playMusic();}}).start();// Lambda表达式
// new Thread(new Runnable() {
//
// @Override
// public void run() {
// while (true) {
// playMusic();
// }
// }
// }).start();// 开启一个线程用来播放音乐
方法体
static void playMusic() {// 背景音乐播放try {AudioInputStream ais = AudioSystem.getAudioInputStream(new File("文件路径必须是绝对路径"));AudioFormat aif = ais.getFormat();final SourceDataLine sdl;DataLine.Info info = new DataLine.Info(SourceDataLine.class, aif);sdl = (SourceDataLine) AudioSystem.getLine(info);sdl.open(aif);sdl.start();FloatControl fc = (FloatControl) sdl.getControl(FloatControl.Type.MASTER_GAIN);// value可以用来设置音量,从0-2.0double value = 2;float dB = (float) (Math.log(value == 0.0 ? 0.0001 : value) / Math.log(10.0) * 20.0);fc.setValue(dB);int nByte = 0;int writeByte = 0;final int SIZE = 1024 * 64;byte[] buffer = new byte[SIZE];while (nByte != -1) {nByte = ais.read(buffer, 0, SIZE);sdl.write(buffer, 0, nByte);}sdl.stop();} catch (Exception e) {e.printStackTrace();}}
在调用时使用while语句可以实现背景音乐循环播放,
-------------------------------------------------------------------------------------------------------------------------------------------
新增暂停功能
修改方法体,加入状态判断
static void playMusic() {// 背景音乐播放try {AudioInputStream ais = AudioSystem.getAudioInputStream(new File("E:\\Eclipse\\学生管理系统\\src\\image\\测试2.wav"));AudioFormat aif = ais.getFormat();final SourceDataLine sdl;DataLine.Info info = new DataLine.Info(SourceDataLine.class, aif);sdl = (SourceDataLine) AudioSystem.getLine(info);sdl.open(aif);sdl.start();FloatControl fc = (FloatControl) sdl.getControl(FloatControl.Type.MASTER_GAIN);// value可以用来设置音量,从0-2.0double value = 2;float dB = (float) (Math.log(value == 0.0 ? 0.0001 : value) / Math.log(10.0) * 20.0);fc.setValue(dB);int nByte = 0;int writeByte = 0;final int SIZE = 1024 * 64;byte[] buffer = new byte[SIZE];while (nByte != -1) {// 判断 播放/暂停 状态if(flag) {nByte = ais.read(buffer, 0, SIZE);sdl.write(buffer, 0, nByte);}else {nByte = ais.read(buffer, 0, 0);}}sdl.stop();} catch (Exception e) {e.printStackTrace();}}
之后在使用此方法的类中定义boolean用来指定状态即可
static boolean flag = true;
Java中添加背景音乐【更新 播放/暂停】相关推荐
- Java 中添加背景音乐
Java 中添加背景音乐 GUI 中添加背景音乐 添加循环播放的背景音乐 背景音乐音量调节 好了,以上主要是多放几个 关键词,方便能让需要的人都能搜到 以下就是可直接使用的方法, 之后按提示导包就 o ...
- Word处理控件Aspose.Words功能演示:使用 Java 在 Word 中添加或更新目录
Word 文档中的目录(TOC) 为您提供了文档内容的概述.此外,它还允许导航到文档的特定部分.在本文中,将学习如何以编程方式处理 Word 文档中的目录.特别地,本文介绍了如何使用 Java 在 W ...
- java创建的窗口无法关闭_在Java中添加canvas后无法关闭窗口(Can't close window after adding canvas in Java)...
在Java中添加canvas后无法关闭窗口(Can't close window after adding canvas in Java) public class Screen extends Ca ...
- Fedora 21 中添加及更新源的命令
原文: Fedora 21 中添加及更新源的命令 fedora的软件源信息文件(*.repo)都是放在 /etc/yum.repos.d 目录下的.可以通过# ls -l /etc/yum.repos ...
- java soap 头_如何在Java中添加Soap标头
我有一个来自oracle的NO.net Web服务,要访问,我需要添加soap标头.如何在Java中添加soap标头? Authenticator.setDefault(new ProxyAuthen ...
- UE4 学习记录八 给场景中添加背景音乐和动画音效,运动加速效果
这只是用来记录我学习UE4过程的,可能帮不到你,先说声抱歉.为了防止误导他人,请勿转载,请勿转载,请勿转载. 本文的主题是给场景中添加背景音乐和动画的音效.总章目录(https://blog.csdn ...
- java 如何添加背景音乐_Java JFrame 中添加背景音乐方法
在想让音乐开始播放的时候 调用该方法就可以,如:如果想在一打开JFrame的时候就播放,那么在JFrame的构造方法中添加该方法即可.以此类推. import java.applet.AudioCli ...
- java编写添加背景音乐代码_java代码中简单添加背景音乐(亲测有效)
在做java贪吃蛇游戏课设时,想添加背景音乐,用了以下很简单的步骤即可完成,亲测有效哦! 调用方法: new Thread(()->{while(true) {Data.playMusic(); ...
- Android中添加背景音乐的两种方法
前些天在尝试自己写一个Android小游戏--flybird 基本功能实现了,就想添加声音,然后上网查了查,大多是一样,可是用到我这,有些却不可以用,所以我还用了两种方法. 下面谈谈这两种方法. 方法 ...
最新文章
- 与年轻人的“要疯”五年,安踏如何保持新鲜感与吸引力?
- 1线程概念:线程和进程之间的关系,线程间可共享资源,线程间非共享资源,线程的优缺点
- 嵌入式成长轨迹34 【嵌入式学习阶段】【ARM环境调试】【QT 移植环境及简单程序示例】---补充《ok6410 Qt移植百科全书》...
- wav音量和分贝转换关系_Permute 3 for mac(音视频格式转换器) 最新版
- leetcode232. 用栈实现队列
- ajax应用中如何禁止缓存
- java如何用反射把具体方法抽象_如何在Java 中使用泛型或反射机制对DAO进行抽象...
- signature=d66576fde8d472a0c1dddd8b37be6b72,Signature process
- 为什么所请求的剪切操作失败_MIUI12.5上手体验:给操作系统做了点“加法”,为用户多加了层防护...
- ZigBee-CC2530单片机 - 1路硬件PWM控制舵机角度(精度为1us)
- 卡尔曼滤波器python_特征工程:利用卡尔曼滤波器处理时间序列(快速入门+python实现)...
- 调音台docker教程_Docker菜鸟教程 - Docker入门教程 - Docker基础教程 - 动力节点
- Java学习-基础篇(1)
- 第五届山东理工大学ACM网络编程擂台赛
- 必应每日一图php,轻量必应每日一图HTML源码
- 从0到1:朋友圈爆款背后的计算机视觉技术与应用 | 百万人学AI
- IOB寄存器的使用:IOB= TRUE 属性
- “京东红”托起“松石绿” 湖北十堰让世界发现中国珠宝之美
- java php python校园通知事项打卡 微信小程序系统
- H5 vue单页面 活体检测