java實(shí)現(xiàn)播放背景音樂(lè)
本文實(shí)例為大家分享了java實(shí)現(xiàn)播放背景音樂(lè)的具體代碼,供大家參考,具體內(nèi)容如下
測(cè)試源碼
播放背景音樂(lè)類(lèi)
package forGame;
import javax.sound.sampled.*;
import java.io.File;
//測(cè)試背景音樂(lè)播放(只能播放.wav文件)
public class Demo_2 {
//需要傳入要播放的文件
void playMusic(File file)
{
try
{
//創(chuàng)建相當(dāng)于音樂(lè)播放器的對(duì)象
Clip clip = AudioSystem.getClip();
//將傳入的文件轉(zhuǎn)成可播放的文件
AudioInputStream audioInput = AudioSystem.getAudioInputStream(file);
//播放器打開(kāi)這個(gè)文件
clip.open(audioInput);
//clip.start();//只播放一次
//循環(huán)播放
clip.loop(Clip.LOOP_CONTINUOUSLY);
} catch(Exception ex){
ex.printStackTrace();
}
//死循環(huán)不讓主程序結(jié)束(swing可不用)
/*
while(true){
}
*/
}
}
窗口類(lèi)
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;
//背景音樂(lè)
private File bgm;
//播放音樂(lè)類(lèi)對(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)線(xiàn)程
MyThread myThread = new MyThread();
myThread.start();
//播放背景音樂(lè)
demo_2.playMusic(bgm);
}
//雙緩沖繪制解決圖片閃爍問(wèn)題
@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)圖片索引
//線(xiàn)程內(nèi)部類(lè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)單音樂(lè)播放器功能示例
- Java swing實(shí)現(xiàn)音樂(lè)播放器桌面歌詞字體變色效果
- java實(shí)現(xiàn)簡(jiǎn)單音樂(lè)播放器
- java實(shí)現(xiàn)簡(jiǎn)單音樂(lè)播放器
- 教你輕松制作java音樂(lè)播放器
- java 實(shí)現(xiàn)音樂(lè)播放器的簡(jiǎn)單實(shí)例
- java音樂(lè)播放器實(shí)現(xiàn)代碼
- Java程序中添加播放MIDI音樂(lè)功能的實(shí)現(xiàn)方法詳解
- java音樂(lè)播放器編寫(xiě)源碼
- 簡(jiǎn)單實(shí)現(xiàn)java音樂(lè)播放器
- 一個(gè)簡(jiǎn)單的Java音樂(lè)播放器
- java音樂(lè)播放器課程設(shè)計(jì)
- 基于Java Springboot + Vue + MyBatis實(shí)現(xiàn)音樂(lè)播放系統(tǒng)
相關(guān)文章
淺談Java獲得多線(xiàn)程的返回結(jié)果方式(3種)
這篇文章主要介紹了淺談Java獲得多線(xiàn)程的返回結(jié)果方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
純Java實(shí)現(xiàn)數(shù)字證書(shū)生成簽名的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)?lái)一篇純Java實(shí)現(xiàn)數(shù)字證書(shū)生成簽名的簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-08
一文帶你掌握J(rèn)ava8中Lambda表達(dá)式 函數(shù)式接口及方法構(gòu)造器數(shù)組的引用
Java 8 (又稱(chēng)為 jdk 1.8) 是 Java 語(yǔ)言開(kāi)發(fā)的一個(gè)主要版本。 Oracle 公司于 2014 年 3 月 18 日發(fā)布 Java 8 ,它支持函數(shù)式編程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等2021-10-10
使用Java通過(guò)OAuth協(xié)議驗(yàn)證發(fā)送微博的教程
這篇文章主要介紹了使用Java通過(guò)OAuth協(xié)議驗(yàn)證發(fā)送微博的教程,使用到了新浪微博為Java開(kāi)放的API weibo4j,需要的朋友可以參考下2016-02-02
Java HashMap源碼及并發(fā)環(huán)境常見(jiàn)問(wèn)題解決
這篇文章主要介紹了Java HashMap源碼及并發(fā)環(huán)境常見(jiàn)問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
Hibernate validator使用以及自定義校驗(yàn)器注解
這篇文章主要介紹了Hibernate validator使用以及自定義校驗(yàn)器注解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01

