本文目錄一覽:
怎樣在java中播放音樂
使用play()方法進行播放,loop()方法循環播放,stop()方法停止播放。
實際例子:
File file1 = new File(“src\\music\\11.wav”);
AudioClip sound1;
sound1 = Applet.newAudioClip(file1.toURL());
sound1.play();
這樣就實現了播放音樂的功能,注意J2SE默認只支持 wav格式的音頻。
怎樣通過java打開音樂播放器
java中打開音樂播放器的方式是使用audioclip類來播放音樂,實例如下:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import javax.swing.*;
import java.io.File;
class AudioPlayDemo extends JFrame implements ActionListener {
boolean looping = false;
File file1 = new File(“music\\明天會更好.wav”);
AudioClip sound1;
AudioClip chosenClip;
JButton playButton = new JButton(“播放”);
JButton loopButton = new JButton(“循環播放”);
JButton stopButton = new JButton(“停止”);
JLabel status = new JLabel(“選擇播放文件”);
JPanel controlPanel = new JPanel();
Container container = getContentPane();
public AudioPlayDemo() {
try {
sound1 = Applet.newAudioClip(file1.toURL());
chosenClip = sound1;
} catch(OutOfMemoryError e){
System.out.println(“內存溢出”);
e.printStackTrace();
} catch(Exception e){
e.printStackTrace();
}
playButton.addActionListener(this);
loopButton.addActionListener(this);
stopButton.addActionListener(this);
stopButton.setEnabled(false);
controlPanel.add(playButton);
controlPanel.add(loopButton);
controlPanel.add(stopButton);
container.add(controlPanel, BorderLayout.CENTER);
container.add(status, BorderLayout.SOUTH);
setSize(300, 130);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //關閉窗口時退出程序
}
public void actionPerformed(ActionEvent event) {
if (chosenClip == null) {
status.setText(“聲音未載入”);
return;
}
Object source = event.getSource(); //獲取用戶洗滌激活的按鈕
if (source == playButton) {
stopButton.setEnabled(true);
loopButton.setEnabled(true);
chosenClip.play();
status.setText(“正在播放”);
}
if (source == loopButton) {
looping = true;
chosenClip.loop();
loopButton.setEnabled(false);
stopButton.setEnabled(true);
status.setText(“正在循環播放”);
}
if (source == stopButton) {
if (looping) {
looping = false;
chosenClip.stop();
loopButton.setEnabled(true);
} else {
chosenClip.stop();
}
stopButton.setEnabled(false);
status.setText(“停止播放”);
}
}
public static void main(String s[]) {
new AudioPlayDemo();
}
}
只能播放wav格式的歌曲
如何用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音樂播放
Applet我沒有學過——-現在都用Swing了,AWT都很少用的。
我跑了下你的程序,你的錯誤在這:
sound=getAudioClip(getDocumentBase(),”test.mp3″);
也就是AudioClip 對象沒有創建成功!
在監聽器中觸發事件的時候,你首先要判斷AudioClip 不為空,然後才能進行播放!
if (obj == plays) {
if (sound != null) {
sound.play();
} else {
sound = getAudioClip(getDocumentBase(), “D:\\lalala.wma”);
sound.play();
}
} else if (obj == stops) {
。。。。。
這樣寫是對的寫法
但是sound = getAudioClip(getDocumentBase(), “D:\\lalala.wma”);
還是沒有構建成功。所以,你構建AudioClip估計是錯誤的寫法。
Appletde API太老了,我沒有看,所以給你個Swing寫的代碼,你跑下看看,編譯通過的。建議你不要用Applet了!
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.media.Manager;
import javax.media.MediaLocator;
import javax.media.Player;
import javax.swing.*;
public class MusicDemo extends JFrame implements ActionListener {
Player player = null;
String tilte = “音樂播放器”;
public MusicDemo(String title) {
super(title); // 設置顯示標題(必須)
setResizable(false);// 設置是否可以拖放窗口大小
File mufile = new File(“D:\\Lovinyou.mp3”);
try {
if (player == null) {
if (mufile.exists()) {
MediaLocator locator = new MediaLocator(“file:”
+ mufile.getAbsolutePath());
player = Manager.createRealizedPlayer(locator);
player.prefetch();
}
}
// player.addControllerListener(this);
player.start();// 開始播放
add(player.getControlPanelComponent(), “South”);
double lx = Toolkit.getDefaultToolkit().getScreenSize().getWidth();
double ly = Toolkit.getDefaultToolkit().getScreenSize().getHeight();
setLocation((int) lx / 2 – 200, (int) ly / 2 – 150);// 設置顯示位置(必須)
// 設置frame的大小(必須)
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 關閉按鈕退出程序(必須)
setVisible(true);// (必須)
} catch (Exception e) {
e.getStackTrace();
}
}
public String getTilte() {
return tilte;
}
public void setTilte(String tilte) {
this.tilte = tilte;
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
}
public static void main(String[] args) {
MusicDemo d = new MusicDemo(“播放音樂”);
}
}
記得在File mufile = new File(“D:\\Lovinyou.mp3”); 這地方換為你音樂的路徑
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(“有錯誤!”);
}
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/305220.html