java實(shí)現(xiàn)播放背景音樂
本文實(shí)例為大家分享了java實(shí)現(xiàn)播放背景音樂的具體代碼,供大家參考,具體內(nèi)容如下
測(cè)試源碼
播放背景音樂類
package forGame; import javax.sound.sampled.*; import java.io.File; //測(cè)試背景音樂播放(只能播放.wav文件) public class Demo_2 { //需要傳入要播放的文件 void playMusic(File file) { try { //創(chuàng)建相當(dāng)于音樂播放器的對(duì)象 Clip clip = AudioSystem.getClip(); //將傳入的文件轉(zhuǎn)成可播放的文件 AudioInputStream audioInput = AudioSystem.getAudioInputStream(file); //播放器打開這個(gè)文件 clip.open(audioInput); //clip.start();//只播放一次 //循環(huán)播放 clip.loop(Clip.LOOP_CONTINUOUSLY); } catch(Exception ex){ ex.printStackTrace(); } //死循環(huán)不讓主程序結(jié)束(swing可不用) /* while(true){ } */ } }
窗口類
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; //動(dòng)態(tài)效果 public class Demo_1 extends JFrame{ //背景 private BufferedImage bufferedImage; //窗體大小 private int width; private int height; //照片數(shù)組 private BufferedImage[] images = new BufferedImage[4]; //要繪制動(dòng)態(tài)圖片中的那張 private BufferedImage image; //背景音樂 private File bgm; //播放音樂類對(duì)象 private Demo_2 demo_2 = new Demo_2(); //初始化 { if(bufferedImage == null){ try { bufferedImage = ImageIO.read(new File("src\\image\\背景.png")); for(int i = 1;i < images.length + 1;i ++) images[i - 1] = ImageIO.read(new File("src\\image\\大飛機(jī)爆炸" + i + ".png")); } catch (IOException e) { e.printStackTrace(); } } width = bufferedImage.getWidth(); height = bufferedImage.getHeight(); image = images[0]; bgm = new File("src\\music\\bgm.wav"); } public Demo_1(){ super("動(dòng)態(tài)測(cè)試"); //設(shè)置窗口 setSize(width,height); setLocationRelativeTo(null); setResizable(false); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); //啟動(dòng)線程 MyThread myThread = new MyThread(); myThread.start(); //播放背景音樂 demo_2.playMusic(bgm); } //雙緩沖繪制解決圖片閃爍問題 @Override public void paint(Graphics g) { Image image = this.createImage(width,height); Graphics gImage = image.getGraphics(); gImage.setColor(gImage.getColor()); gImage.fillRect(0,0,width,height); super.paint(gImage); //繪制背景 gImage.drawImage(bufferedImage,0 ,0 ,null ); //繪制動(dòng)態(tài)圖片 gImage.drawImage(this.image,0 ,100 ,null ); //最后繪制緩沖后的圖片 g.drawImage(image,0 ,0 , null); } private int num = 0;//images數(shù)組內(nèi)圖片索引 //線程內(nèi)部類 private class MyThread extends Thread{ @Override public void run() { while(true) { if(num <= 3) { image = images[num ++]; } else num = 0; repaint(); try { sleep(100);//每隔100毫秒重繪一次 } catch (InterruptedException e) { e.printStackTrace(); } } } } public static void main(String[] args) { new Demo_1(); } }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Java實(shí)現(xiàn)的簡(jiǎn)單音樂播放器功能示例
- Java swing實(shí)現(xiàn)音樂播放器桌面歌詞字體變色效果
- java實(shí)現(xiàn)簡(jiǎn)單音樂播放器
- java實(shí)現(xiàn)簡(jiǎn)單音樂播放器
- 教你輕松制作java音樂播放器
- java 實(shí)現(xiàn)音樂播放器的簡(jiǎn)單實(shí)例
- java音樂播放器實(shí)現(xiàn)代碼
- Java程序中添加播放MIDI音樂功能的實(shí)現(xiàn)方法詳解
- java音樂播放器編寫源碼
- 簡(jiǎn)單實(shí)現(xiàn)java音樂播放器
- 一個(gè)簡(jiǎn)單的Java音樂播放器
- java音樂播放器課程設(shè)計(jì)
- 基于Java Springboot + Vue + MyBatis實(shí)現(xiàn)音樂播放系統(tǒng)
相關(guān)文章
純Java實(shí)現(xiàn)數(shù)字證書生成簽名的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)硪黄僇ava實(shí)現(xiàn)數(shù)字證書生成簽名的簡(jiǎn)單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-08-08一文帶你掌握J(rèn)ava8中Lambda表達(dá)式 函數(shù)式接口及方法構(gòu)造器數(shù)組的引用
Java 8 (又稱為 jdk 1.8) 是 Java 語(yǔ)言開發(fā)的一個(gè)主要版本。 Oracle 公司于 2014 年 3 月 18 日發(fā)布 Java 8 ,它支持函數(shù)式編程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等2021-10-10使用Java通過OAuth協(xié)議驗(yàn)證發(fā)送微博的教程
這篇文章主要介紹了使用Java通過OAuth協(xié)議驗(yàn)證發(fā)送微博的教程,使用到了新浪微博為Java開放的API weibo4j,需要的朋友可以參考下2016-02-02Java HashMap源碼及并發(fā)環(huán)境常見問題解決
這篇文章主要介紹了Java HashMap源碼及并發(fā)環(huán)境常見問題解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09Hibernate validator使用以及自定義校驗(yàn)器注解
這篇文章主要介紹了Hibernate validator使用以及自定義校驗(yàn)器注解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01