在src下面建一個(gè)文件夾music放音樂如withoutYou.mp3
在欽南等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站制作、網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需設(shè)計(jì)網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都全網(wǎng)營銷,成都外貿(mào)網(wǎng)站建設(shè),欽南網(wǎng)站建設(shè)費(fèi)用合理。
try{
java.net.URL musicPath=MyActionListener.class.getResource("/music/withoutYou.mp3");
System.out.println(musicPath);
music= java.applet.Applet.newAudioClip(musicPath);
music.loop();//循環(huán)播放
}catch( Exception ef){
javax.swing.JOptionPane.showMessageDialog(null, "音樂播放失敗");
}
絕對(duì)可以;
不行找我; qq983714669;要給我80分;
一樓的回答說對(duì)了一部分,主要還是多線程的問題.
我的畢業(yè)設(shè)計(jì)也是做的一個(gè)小游戲程序--坦克大戰(zhàn),當(dāng)初游戲邏輯界面都完成了想加入音頻的時(shí)候也遇到了困難,最開始想到了多線程處理,也就是自身游戲的繪圖線程占用著主線程,如果此時(shí)再在同一線程播放音頻的話肯定會(huì)造成音頻流或者繪圖類paint阻塞,所以這時(shí)要為音頻加入一個(gè)單獨(dú)額外的線程,已達(dá)到避免線程阻塞的作用.
但是此時(shí)還是會(huì)出現(xiàn)音頻不流暢的情況(當(dāng)然,大多情況是出現(xiàn)短暫音效后便消失),主要問題在于Java在利用線程讀取音頻的時(shí)候,是通過流的方式讀取的,此時(shí)可以考慮在程序加載之前先“預(yù)載”一次音頻,當(dāng)需要的時(shí)候再調(diào)用它的播放線程,利用流處理.這么做的好處是將音頻存放在內(nèi)存中,當(dāng)需要的時(shí)候能正常的出現(xiàn).當(dāng)然,后面這段情況是在你運(yùn)用到了多線程的時(shí)候才會(huì)出現(xiàn)的。
找了下畢設(shè)時(shí)的代碼,如下:
/**
*該方法為音頻流緩沖方法,在調(diào)用音頻播放線程時(shí)調(diào)用
*/
public BufferedInputStream loadBomb(){
BufferedInputStream bufbomb = null;
try{
File dir = new File("D:/java/TankWar2.6/"); //所要播放文件的路徑
File fObject = new File(dir,"bomb.wav"); //音頻名
FileInputStream file = new FileInputStream(fObject);
bufbomb = new BufferedInputStream(file);
}catch(IOException e) {
System.out.println(e.getMessage());
}
return bufbomb;
}
/**
* 緩沖完畢的核爆音頻播放線程
*/
private class BombMusic implements Runnable{ //通過流讀取聲音文件
BufferedInputStream buf;
public void run(){
buf = loadBomb();
try{
AudioStream audio = new AudioStream(buf);
AudioPlayer.player.start(audio);
}catch(IOException e){
e.printStackTrace();
}
}
}
不知道你是在java里哪添加?Swing界面中嗎?
下面這個(gè)是我之前做Swing界面程序時(shí)添加音樂的代碼,希望對(duì)你有幫助
AudioClip[] musics;//定義音樂集合
musics = new AudioClip[2];//初始化
URL url1 = this.getClass().getResource("/ReadyGo.WAV"); //定義音樂文件地址
URL url2 = this.getClass().getResource("/back1.mid"); //定義音樂文件地址
musics[0] = JApplet.newAudioClip(url1);
musics[1] = JApplet.newAudioClip(url2);
musics[0].play();//音樂開始執(zhí)行
musics[1].stop();//停止播放