当前位置:   article > 正文

java代码添加背景音乐(自用)_java 音频添加背景音乐

java 音频添加背景音乐

自用记录,亲测可行。 

java课设,马里奥的小游戏,总觉得没有背景音乐就少了点乐趣,试了很多种添加背景音乐,这个成功了!!

原作链接:

Java小游戏中加背景音乐--有图有真相_一如既往的博客-CSDN博客_java游戏怎么添加背景音乐

注意添加音乐的格式:.wav

新建class :Music.java   音乐文件和代码所在类 必须在同一个包里
复制代码

  1. //第一句话按照提示或根据自己的代码修改,其他的不要改
  2. package com.tarena.fly;
  3. import java.io.File;
  4. import java.io.IOException;
  5. import javax.sound.sampled.AudioFormat;
  6. import javax.sound.sampled.AudioInputStream;
  7. import javax.sound.sampled.AudioSystem;
  8. import javax.sound.sampled.DataLine;
  9. import javax.sound.sampled.FloatControl;
  10. import javax.sound.sampled.LineUnavailableException;
  11. import javax.sound.sampled.SourceDataLine;
  12. import javax.sound.sampled.UnsupportedAudioFileException;
  13. public class Music extends Thread {
  14. private String fileName;
  15. private final int EXTERNAL_BUFFER_SIZE = 524288;
  16. public Music(String wavFile) {
  17. this.fileName = wavFile;
  18. }
  19. @SuppressWarnings("unused")
  20. public void run() {
  21. File soundFile = new File(fileName); // 播放音乐的文件名
  22. if (!soundFile.exists()) {
  23. System.err.println("Wave file not found:" + fileName);
  24. return;
  25. }
  26. while (true) { // 设置循环播放
  27. AudioInputStream audioInputStream = null; // 创建音频输入流对象
  28. try {
  29. audioInputStream = AudioSystem.getAudioInputStream(soundFile); // 创建音频对象
  30. } catch (UnsupportedAudioFileException e1) {
  31. e1.printStackTrace();
  32. return;
  33. } catch (IOException e1) {
  34. e1.printStackTrace();
  35. return;
  36. }
  37. AudioFormat format = audioInputStream.getFormat(); // 音频格式
  38. SourceDataLine auline = null; // 源数据线
  39. DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);
  40. try {
  41. auline = (SourceDataLine) AudioSystem.getLine(info);
  42. auline.open(format);
  43. } catch (LineUnavailableException e) {
  44. e.printStackTrace();
  45. return;
  46. } catch (Exception e) {
  47. e.printStackTrace();
  48. return;
  49. }
  50. if (auline.isControlSupported(FloatControl.Type.PAN)) {
  51. FloatControl pan = (FloatControl) auline.getControl(FloatControl.Type.PAN);
  52. }
  53. auline.start();
  54. int nBytesRead = 0;
  55. byte[] abData = new byte[EXTERNAL_BUFFER_SIZE];
  56. try {
  57. while (nBytesRead != -1) {
  58. nBytesRead = audioInputStream.read(abData, 0, abData.length);
  59. if (nBytesRead >= 0)
  60. auline.write(abData, 0, nBytesRead);
  61. }
  62. } catch (IOException e) {
  63. e.printStackTrace();
  64. return;
  65. } finally {
  66. auline.drain();
  67. // auline.close();
  68. }
  69. }
  70. }
  71. }

找到主函数

添加代码

  1. //背景音乐启动
  2. Music audioPlayWave = new Music("BGM.wav");// 开音乐(冒号里的内容与音乐文件名一致)
  3. audioPlayWave.start();
  4. @SuppressWarnings("unused")
  5. int musicOpenLab = 1;

 

运行,成功植入,完成!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/759648
推荐阅读
相关标签
  

闽ICP备14008679号