介绍
这篇文章主要介绍java如何实现播放背景音乐,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
<强>测试源码强>
播放背景音乐类
package forGame; import javax.sound.sampled。*; import java.io.File;//测试背景音乐播放(只能播放。wav文件) public class  Demo_2 {//需才能要传入要播放的文件 void 才能playMusic (File 文件) {才能 ,,,试一试 ,,,{ ,,,,,//创建相当于音乐播放器的对象 ,,,,,Clip Clip =, AudioSystem.getClip (); ,,,,,//将传入的文件转成可播放的文件 ,,,,,AudioInputStream audioInput =, AudioSystem.getAudioInputStream(文件); ,,,,,//播放器打开这个文件 ,,,,,clip.open (audioInput); ,,,,,//clip.start();//只播放一次 ,,,,,//循环播放 ,,,,,clip.loop (Clip.LOOP_CONTINUOUSLY); ,,,},捕捉(Exception 交货){ ,,,,,ex.printStackTrace (); ,,,} ,,,//死循环不让主程序结束(swing可不用) ,,/* ,,,,,,(真正的){ ,,,,,} ,,*/,,} }
窗口类
package forGame; import javax.imageio.ImageIO; import javax.swing。*; import java.awt。*; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException;//动态效果 public class  Demo_1 extends  JFrame {//才能背景 private 才能;BufferedImage  bufferedImage;//窗才能体大小 private 才能int 宽度; private 才能;int 高度;//才能照片数组 private 才能BufferedImage [], images =, new BufferedImage [4];//要才能绘制动态图片中的那张 private 才能;BufferedImage 形象;//才能背景音乐 private 才能;File  bgm;//才能播放音乐类对象 private 才能Demo_2 Demo_2 =, new Demo_2 ();//才能初始化 {才能 ,,,如果(bufferedImage ==, null) { ,,,,,try { ,,,,,,,bufferedImage =, ImageIO.read (new 文件(“\ \ src \ \图像背景.png")); ,,,,,,,,(int 小姐:=,1;小姐:& lt;, images.length +, 1;小姐:+ +) ,,,,,,,,,图片[小姐,安康;1],=,ImageIO.read (new 文件(“\ \ src \ \形象大飞机爆炸“,+,小姐:+,“.png")); ,,,,,},catch (IOException e), { ,,,,,,,e.printStackTrace (); ,,,,,} ,,,} ,,,width =, bufferedImage.getWidth (); ,,,height =, bufferedImage.getHeight (); ,,,image =,图像[0]; ,,,bgm =, new 文件(“src \ \音乐\ \ bgm.wav"); ,,} public 才能;Demo_1 () { ,,,超级(“动态测试“); ,,,//设置窗口 ,,,setSize(宽度、高度); ,,,setLocationRelativeTo(空); ,,,setResizable(假); ,,,setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); ,,,setVisible(真正的); ,,,//启动线程 ,,,MyThread MyThread =, new MyThread (); ,,,myThread.start (); ,,,//播放背景音乐 ,,,demo_2.playMusic (bgm); ,,}//双才能缓冲绘制解决图片闪烁问题 @Override才能 public 才能;void 油漆(Graphics g), { ,,,Image Image =, this.createImage(宽度、高度); ,,,Graphics gImage =, image.getGraphics (); ,,,gImage.setColor (gImage.getColor ()); ,,,gImage.fillRect(0, 0,宽度、高度); ,,,super.paint (gImage); ,,,//绘制背景 ,,,gImage.drawImage (bufferedImage 0, 0,, null ); ,,,//绘制动态图片 ,,,gImage.drawImage (this.image, 0, 100,, null ); ,,,//最后绘制缓冲后的图片 ,,,g.drawImage(形象,0,0,,,null); ,,} private 才能int num =, 0;//图片数组内图片索引//线才能程内部类 private 才能class MyThread  extends 螺纹{ ,,@Override ,,,public void 运行(),{ ,,,,,,(真正的),{ null null null null null null null null null null null null null null null null null null nulljava如何实现播放背景音乐