java實現(xiàn)播放背景音樂
更新時間:2021年03月22日 08:43:35 作者:點丶錯了。。
這篇文章主要為大家詳細介紹了java實現(xiàn)播放背景音樂,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了java實現(xiàn)播放背景音樂的具體代碼,供大家參考,具體內(nèi)容如下
測試源碼
播放背景音樂類
package forGame;
import javax.sound.sampled.*;
import java.io.File;
//測試背景音樂播放(只能播放.wav文件)
public class Demo_2 {
//需要傳入要播放的文件
void playMusic(File file)
{
try
{
//創(chuàng)建相當(dāng)于音樂播放器的對象
Clip clip = AudioSystem.getClip();
//將傳入的文件轉(zhuǎn)成可播放的文件
AudioInputStream audioInput = AudioSystem.getAudioInputStream(file);
//播放器打開這個文件
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;
//動態(tài)效果
public class Demo_1 extends JFrame{
//背景
private BufferedImage bufferedImage;
//窗體大小
private int width;
private int height;
//照片數(shù)組
private BufferedImage[] images = new BufferedImage[4];
//要繪制動態(tài)圖片中的那張
private BufferedImage image;
//背景音樂
private File bgm;
//播放音樂類對象
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\\大飛機爆炸" + 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("動態(tài)測試");
//設(shè)置窗口
setSize(width,height);
setLocationRelativeTo(null);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
//啟動線程
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 );
//繪制動態(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();
}
}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- Java實現(xiàn)的簡單音樂播放器功能示例
- Java swing實現(xiàn)音樂播放器桌面歌詞字體變色效果
- java實現(xiàn)簡單音樂播放器
- java實現(xiàn)簡單音樂播放器
- 教你輕松制作java音樂播放器
- java 實現(xiàn)音樂播放器的簡單實例
- java音樂播放器實現(xiàn)代碼
- Java程序中添加播放MIDI音樂功能的實現(xiàn)方法詳解
- java音樂播放器編寫源碼
- 簡單實現(xiàn)java音樂播放器
- 一個簡單的Java音樂播放器
- java音樂播放器課程設(shè)計
- 基于Java Springboot + Vue + MyBatis實現(xiàn)音樂播放系統(tǒng)
相關(guān)文章
純Java實現(xiàn)數(shù)字證書生成簽名的簡單實例
下面小編就為大家?guī)硪黄僇ava實現(xiàn)數(shù)字證書生成簽名的簡單實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-08-08
一文帶你掌握Java8中Lambda表達式 函數(shù)式接口及方法構(gòu)造器數(shù)組的引用
Java 8 (又稱為 jdk 1.8) 是 Java 語言開發(fā)的一個主要版本。 Oracle 公司于 2014 年 3 月 18 日發(fā)布 Java 8 ,它支持函數(shù)式編程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等2021-10-10
使用Java通過OAuth協(xié)議驗證發(fā)送微博的教程
這篇文章主要介紹了使用Java通過OAuth協(xié)議驗證發(fā)送微博的教程,使用到了新浪微博為Java開放的API weibo4j,需要的朋友可以參考下2016-02-02
Java HashMap源碼及并發(fā)環(huán)境常見問題解決
這篇文章主要介紹了Java HashMap源碼及并發(fā)環(huán)境常見問題解決,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-09-09
Hibernate validator使用以及自定義校驗器注解
這篇文章主要介紹了Hibernate validator使用以及自定義校驗器注解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01

