本文目錄一覽:
如何用java識別音樂
Java中可以通過AudioClip類來實現音樂播放,循環等操作。AudioClip支持的音樂格式有.wav、.mid、AIFF、AU、RMF,但是格式要求相當嚴格。我用AudioClip播放我自己錄的一段wav文件就沒有聲音,讓我糾結了很久,最後才發現我的wav文件內容沒有寫文件尾,對於格式要求嚴格的AudioClip而言是無法識別的(這個問題困擾了我整晚)。
AudioCLip主要的方法有:play()播放依次聲音;loop()循環播放音樂;stop()停止播放。
做法一:
InputStream is =null;
AudioStream as = null ;
is = getClass().getResourceAsStream(“a.wav”);
try {
as = new AudioStream(is);
} catch (IOException e) {}
AudioPlayer.player.start(as);
此方法將音樂文件放入流中在播放,僅限於Java Application,容易報錯,空指針異常,或者是流異常,不推薦。
做法二:
String music = “a.wav”;
AudioClip clip = Applet.newAudioClip(getClass().getResource(music));
次方法在Applet中運行沒有問題,但是Application中getclass()會返回空指針,導致失敗。
推薦做法:
private URL url;
private AudioClip ac;
File f1 = new File(“C:/3.wav”);
try {
url= f1.toURL();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ac= Applet.newAudioClip(cb1);
ac.play();
如何用Java來編寫一個音樂播放器
首先要在環境電腦中安裝下JMF環境,才能引入javax.sound.sampled.*這個包,一下是用過的代碼
package TheMusic;
import java.io.*;
import javax.sound.sampled.*;
public class Music {
public static void main(String[] args) {
// TODO Auto-generated method stub
//修改你的音樂文件路徑就OK了
AePlayWave apw=new AePlayWave(“突然好想你.wav”);
apw.start();
}
}
在程序中實例化這個類,啟動線程,實例化的時候參照Test修改路徑就OK播放聲音的類
Java代碼
public class AePlayWave extends Thread {
private String filename;
public AePlayWave(String wavfile) {
filename = wavfile;
}
public void run() {
File soundFile = new File(filename);
AudioInputStream audioInputStream = null;
try {
audioInputStream = AudioSystem.getAudioInputStream(soundFile);
} catch (Exception e1) {
e1.printStackTrace();
return;
}
AudioFormat format = audioInputStream.getFormat();
SourceDataLine auline = null;
DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);
try {
auline = (SourceDataLine) AudioSystem.getLine(info);
auline.open(format);
} catch (Exception e) {
e.printStackTrace();
return;
}
auline.start();
int nBytesRead = 0;
byte[] abData = new byte[512];
try {
while (nBytesRead != -1) {
nBytesRead = audioInputStream.read(abData, 0, abData.length);
if (nBytesRead = 0)
auline.write(abData, 0, nBytesRead);
}
} catch (IOException e) {
e.printStackTrace();
return;
} finally {
auline.drain();
auline.close();
}
}
}
Java怎麼實現音樂播放
java swt實現播放音樂代碼如下:
public void play(String Filename)
{
try{
// 用輸入流打開一音頻文件
InputStream in = new FileInputStream(Filename);//FIlename 是你加載的聲音文件如(「game.wav」)
// 從輸入流中創建一個AudioStream對象
AudioStream as = new AudioStream(in);
AudioPlayer.player.start(as);//用靜態成員player.start播放音樂
//AudioPlayer.player.stop(as);//關閉音樂播放
//如果要實現循環播放,則用下面的三句取代上面的「AudioPlayer.player.start(as);」這句
/*AudioData data = as.getData();
ContinuousAudioDataStream gg= new ContinuousAudioDataStream (data);
AudioPlayer.player.start(gg);// Play audio.
*/
//如果要用一個 URL 做為聲音流的源(source),則用下面的代碼所示替換輸入流來創建聲音流:
/*AudioStream as = new AudioStream (url.openStream());
*/
} catch(FileNotFoundException e){
System.out.print(“FileNotFoundException “);
} catch(IOException e){
System.out.print(“有錯誤!”);
}
}
怎樣在java中播放音樂
使用play()方法進行播放,loop()方法循環播放,stop()方法停止播放。
實際例子:
File file1 = new File(“src\\music\\11.wav”);
AudioClip sound1;
sound1 = Applet.newAudioClip(file1.toURL());
sound1.play();
這樣就實現了播放音樂的功能,注意J2SE默認只支持 wav格式的音頻。
原創文章,作者:PEBUA,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/318111.html