你好:
婁星網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。成都創(chuàng)新互聯(lián)公司于2013年創(chuàng)立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。
synchronized(this)里面的this很關(guān)鍵,也就是想要2個(gè)線程同時(shí)迸發(fā),必須是同一個(gè)this,否則就不行,你可以考慮下。
可以使用Applet組件,主要的代碼如下(缺點(diǎn)是能播放WAv格式的,還有其它格式,不過(guò)mp3不行,):
import java.applet.Applet;
import java.applet.AudioClip;
import java.awt.FlowLayout;
import java.awt.event.*;
import java.io.File;
import java.net.MalformedURLException;
//播放音樂(lè)按鈕
private JButton getPlayButton(){
if(playButton==null){
playButton=new JButton("播放");
playButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(filePath.getText()!=null){
try{
if(audioClip!=null){
audioClip.stop();
}
audioClip=Applet.newAudioClip(new File(filePath.getText()).toURI().toURL());
audioClip.play();//播放
}//只需要添加一個(gè)File對(duì)象傳入文件路徑
catch(MalformedURLException ee){ee.printStackTrace();}
}
}
});
}
return playButton;
}
playCycle(String s)這個(gè)是單曲重復(fù)播放;play(String s)這個(gè)是單曲播放。
/******* part one start *******/
//獲取媒體文件流
AudioInputStream ais = AudioSystem.getAudioInputStream(new File(fileurl));
//獲取文件格式
AudioFormat aif = ais.getFormat();
//這個(gè)類不知道是什么,沒(méi)用過(guò),在這里應(yīng)該是對(duì)媒體流處理的一個(gè)類
SourceDataLine sdl = null;
//這個(gè)貌似通過(guò)媒體格式,獲取媒體文件的信息
DataLine.Info info = new DataLine.Info(SourceDataLine.class,aif);
//通過(guò)媒體文件的信息初始化處理媒體文件的類
sdl = (SourceDataLine)AudioSystem.getLine(info);
//媒體工具類 打開(kāi)媒體流
sdl.open(aif);
//媒體工具(播放器)開(kāi)啟
sdl.start();
/******* part one end *******/
/******* part two start ********/
int nByte = 0;
byte[] buffer = new byte[128];
//媒體工具類(播放器類)對(duì)媒體流進(jìn)行寫入處理,此時(shí)應(yīng)該會(huì)有音樂(lè)響起吧
while(nByte != -1){
nByte = ais.read(buffer,0,128);
if(nByte = 0){
int oByte = sdl.write(buffer, 0, nByte);
//System.out.println(oByte);
}
}
//媒體流結(jié)束,并關(guān)閉這個(gè)媒體工具類
sdl.stop();
/******* part two end********/