在做java贪吃蛇游戏课设时,想添加背景音乐,用了以下很简单的步骤即可完成,亲测有效哦!

调用方法:

new Thread(()->{while(true) {Data.playMusic();}

}).start();// Lambda表达式

//new Thread(new Runnable() {

//

//@Override

//public void run() {

//while (true) {

//playMusic();

//}

//}

//}).start();// 开启一个线程用来播放音乐

方法体:

import java.io.File;

import javax.sound.sampled.AudioFormat;

import javax.sound.sampled.AudioInputStream;

import javax.sound.sampled.AudioSystem;

import javax.sound.sampled.DataLine;

import javax.sound.sampled.FloatControl;

import javax.sound.sampled.SourceDataLine;

static void playMusic() {// 背景音乐播放

try {

AudioInputStream ais = AudioSystem.getAudioInputStream(new File("D:/mysoft/eclipse/贪吃蛇/music.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.0

double 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;

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();

}

}

注意事项:

若程序报错:

Exception in thread "main" javax.sound.sampled.UnsupportedAudioFileException: could not get audio input stream from input file

at javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:1189)

at com.ywq3.Test.main(Test.java:21)

异常信息是说,不支持的格式,即该音频文件不支持,得不到该文件的输入流。我用的是wav格式,原来音频文件是mp3,转换成wav时直接改不行,就会报以上错误。明明是wav文件,却报错说不支持该格式,则可能是该wav文件内部格式有错误。安利一个格式转换网站:https://cn.office-converter.com/Convert-to-WAV。我是转换成正确的wav格式就可以播放音乐啦。此处参考了博客http://blog.csdn.net/qq_25827845/article/details/79026786

如果本文对您有帮助,可不可以给萌新点一个赞,鼓励小萌新坚持写博客的热情!

标签:sound,sampled,背景音乐,java,new,sdl,import,javax,亲测

来源: https://blog.csdn.net/qq_44491991/article/details/105859396

java贪吃蛇添加背景音乐_java代码中简单添加背景音乐(亲测有效)相关推荐

  1. java编写添加背景音乐代码_java代码中简单添加背景音乐(亲测有效)

    在做java贪吃蛇游戏课设时,想添加背景音乐,用了以下很简单的步骤即可完成,亲测有效哦! 调用方法: new Thread(()->{while(true) {Data.playMusic(); ...

  2. java贪吃蛇系统架构_java贪吃蛇游戏框架搭建

    java贪吃蛇游戏框根据面向对象的思想建立蛇类.食物类.周围石头类.面板类.控制中心类.监听器类.组建类. Food.java public class Food { //蛇是否吃到了食物方法 pub ...

  3. java web工程中如何添加图片_java web中如何添加图片

    java web中如何添加图片 对于java可视化界面插入背景图片只需要background-image:url(图片路径)就行,而对于web项目中,并非如此 效果如下: 我们就需要在jsp页面中写J ...

  4. java贪吃蛇设计流程_JAVA版贪食蛇(贪吃蛇)游戏的设计与实现(含录像)

    JAVA版贪食蛇(贪吃蛇)游戏的设计与实现(含录像)(任务书,开题报告,外文翻译,毕业论文12000字,程序代码,MySQL数据库,答辩PPT,答辩视频录像) 摘要 "贪食蛇"游戏 ...

  5. java ip加密如何访问_java代码中如何实现http访问

    作者:释怀Na 出自:CSDN 原文:blog.csdn.net/qq_35906921/article/details/98076258 java代码中如何实现http访问 大概的实现就是 请求ht ...

  6. java贪吃蛇撞壁转弯代码_java贪吃蛇demo

    import javax.swing.*; import java.awt.*; import java.awt.event.KeyEvent; import java.awt.event.KeyLi ...

  7. java贪吃蛇客户端服务器_java Socket套接字TCP编程开发服务端和客户端之间的通信 - 贪吃蛇学院-专业IT技术平台...

    超级简单,没有太多实质内容的Socket服务端,客户端小程序 先运行server 再运行client OK 服务端代码如下: public class Server { public static v ...

  8. Java List.size()方法:返回列表中元素的个数(亲测)

    Java 集合类中的 List.size() 方法以 int 形式返回列表中元素的个数. 语法: size() 返回列表中元素的个数.如果列表中元素的个数超过 2 147 483 647,则返回 2 ...

  9. 贪吃蛇大作战代码java,贪吃蛇游戏,贪吃蛇java游戏代码讲解

    贪吃蛇游戏,贪吃蛇java游戏代码讲解 来源:互联网 作者:佚名 时间:2020-06-06 贪吃蛇源代码.txt这世界上除了我谁都没资格陪在你身边. 听着,我允许你喜欢我.除了白头偕老,我们... ...

  10. java贪吃蛇课程设计报告_java贪吃蛇课程设计报告().doc

    java贪吃蛇课程设计报告() <Java应用开发> 课程设计报告 题 目: JAVA小游戏 - 贪吃蛇 指导老师: 姓 名: 专 业: 班 级: 日 期: 目 录 一.系统总体设计1 ( ...

最新文章

  1. 整数的二进制表达中有多少个1
  2. lvs为何不能完全替代DNS轮询--转
  3. SQL语言之组函数(Oracle)
  4. 【数据库】oracle数据库----内嵌视图
  5. C语言文件读写操作总结
  6. python添加一个球_在Python中创建一个旋转球体
  7. java 百度副文本_spring boot 、springMVC环境集成百度ueditor富文本编辑器
  8. 程序员35岁之后的职业发展
  9. wordpress中直接执行mysql查询语句的常用方法
  10. Java开发笔记(一百四十五)FXML布局的伸展适配
  11. 正则表达式-2-正则表达式实战1
  12. 孩子们的游戏(圆圈中最后剩下的数)(Python)
  13. 转自他人——django实例教程
  14. 打印服务Print Spooler自动停止解决方案
  15. (模电笔记二 By Multisim)波特图(Bode Plotter)幅频特性相频特性详解
  16. ROM 、RAM和FLASH 的区别
  17. 手写springboot
  18. ArcGIS网络分析之中国邮递员问题
  19. Mybatis 框架CRUD的操作 案例
  20. 常见设备/CMS默认口令

热门文章

  1. 移动开发技术【安卓】——Android_Studio【Part 1】
  2. opencv背景抠图
  3. Android Uri的几种使用方法,分享共同学习
  4. selector wakeup
  5. NFT游戏有哪些?盘点当前热门的NFT游戏
  6. 马哥教育42期第五周作业
  7. 云电脑有显卡吗?云电脑怎么做画面处理?
  8. 也谈360软件是否可靠
  9. SEO关键词策略——新站如何抗衡老站…
  10. 艾肯6nano声卡安装调试教程