求java简单背景音乐播放功能,回答者皆送分
简单音乐播放功能,用于背景音乐。
功能简单:
1、点击播放按钮播放音乐,播放完一首音乐后,等待30秒后,继续播放下一首音乐,也就是3首背景音乐连续播放;
2、点击停止按钮,停止播放音乐,不再播放音乐。
就这么2个功能,不要再多的功能了,不要发一些过长、过复杂的代码。
[解决办法]
这个可以的,LZ你已经发过一次了。以后别急着结贴,可以先说好的。
//新建一个img文件夹,里面放上要播放的音乐。mid类型的吧。import java.applet.*;import java.awt.event.*; import java.awt.*;public class PlayAudio extends Applet implements ActionListener{AudioClip audio; Button btExit,btOpen,btPlay,btLoop,btStop;/** *<br>方法说明:初始化Applet *<br>输入参数: *<br>返回类型: */public void init() {//加载声音文件 audio = getAudioClip(getDocumentBase(),"img/1.mid");//这里放上你加在新建文件夹里面的歌曲名称//构造按钮 setLayout(new FlowLayout()); btPlay=new Button("Play"); btPlay.addActionListener(this); btLoop=new Button("Loop"); btLoop.addActionListener(this); btStop=new Button("Stop"); btStop.addActionListener(this); //给Play按钮添加一个监听事件//将按钮添加到Applet中 add(btPlay); add(btLoop); add(btStop);}public void actionPerformed(ActionEvent e) { //如果点击的是Play按钮 if (e.getSource()==btPlay) { play(); } //如果点击的是loop按钮 if (e.getSource()==btLoop) { loop(); } //如果点击的是stop按钮 if (e.getSource()==btStop) { stop(); }}/** *<br>方法说明:播放声音 *<br>输入参数: *<br>返回类型: */public void play(){ if (audio!=null) stop(); audio.play();}/** *<br>方法说明:循环播放声音 *<br>输入参数: *<br>返回类型: */public void loop(){ if (audio!=null) audio.loop();}/** *<br>方法说明:停止播放声音 *<br>输入参数: *<br>返回类型: */public void stop(){ if (audio!=null) audio.stop(); }}
[解决办法]
是哎~~基础版..
像我这样的小鸟还没去过高级的版本呢..
[解决办法]
import java.applet.Applet;
import java.applet.AudioClip;
import java.awt.Button;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class AudioApplet extends Applet implements ActionListener {
AudioClip ac;
Button btnStart=new Button("开始");
Button btnPause=new Button("暂停");
Button btnContine=new Button("继续");
public void init(){
ac=getAudioClip(getDocumentBase(), "1.au");
btnStart.addActionListener(this);
btnPause.addActionListener(this);
btnContine.addActionListener(this);
this.add(btnStart);
this.add(btnPause);
this.add(btnContine);
}
public void stop(){
if(ac!=null){
ac.stop();
}
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(ac==null){
System.out.println("AudioClip object is not created");
return;
}
Object cmd=e.getSource();
if(cmd==btnStart){
ac.play();
ac.loop();
}else if(cmd==btnPause){
ac.stop();
}else if(cmd==btnContine){
ac.play();
ac.loop();
}
}
}
[解决办法]
路过 好久没用APPLE了
[解决办法]
import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.net.*;import java.applet.*;public class Sound{ public static void main(String args[]) { new MusicWindow(); }}class MusicWindow extends JFrame implements ActionListener{ JButton [] musicButton; File musicFile; URI uri; URL url; AudioClip clip; String[] musicName = {"sound/1.mid", "sound/2.mid", "sound/3.mid"}; MusicWindow() { musicButton = new JButton[2]; Box musicBox = Box.createHorizontalBox(); musicButton[0] = new JButton("play"); musicButton[0].addActionListener(this); musicBox.add(musicButton[0]); musicButton[1] = new JButton("stop"); musicButton[1].addActionListener(this); musicBox.add(musicButton[1]); setLayout(new FlowLayout()); add(musicBox); setBounds(120,125,250,150); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void actionPerformed(ActionEvent e) { JButton button = (JButton)e.getSource(); if ( clip != null) clip.stop(); for ( int i = 0; i < musicButton.length; i++ ) { if ( button == musicButton[0] ) { for ( int j = 0; j < 3; j++ ) { musicFile = new File(musicName[j]); uri = musicFile.toURI(); try { url = uri.toURL(); } catch(Exception exp) { } clip = Applet.newAudioClip(url); clip.play(); } } else { clip.stop(); } } } }
[解决办法]
import java.awt.*; import java.awt.event.ActionEvent;import java.awt.event.ActionListener; import java.net.*; import javax.swing.*; import javax.media.*; public class Music extends JFrame { private Player player; // 播放器对象 private Container container; // 主容器 private URL fileURL; //媒体文件URL地址 private JButton bp=new JButton("播放"); private JButton bs=new JButton("停止"); Music(){ container = getContentPane(); //得到窗口容器 setLayout(new GridLayout(1,2)); container.add(bp); container.add(bs); setSize(300, 200); //设置窗口大小 setVisible(true); //设置窗口为可视 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗口时退出程序 fileURL=getClass().getResource("m1.wav"); MediaLocator mediaLocator = new MediaLocator(fileURL); //媒体定位器 try { player = Manager.createPlayer(mediaLocator); //得到播放器实例 } catch (Exception ex) { ex.printStackTrace(); } bp.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ player.start(); } }); bs.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ player.stop(); } }); } public static void main(String args[]) { new Music(); } }
[解决办法]
不管是APPLET还是SWING原理一样的
[解决办法]
这个好用!
/**
*AePlayWave.java
* Created on 4:14:40 PM Feb 20, 2009
*@author Quasar063501
*@version 0.1
*
*/
import java.io.File;
import java.io.IOException;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.FloatControl;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.SourceDataLine;
import javax.sound.sampled.UnsupportedAudioFileException;
public class AePlayWave extends Thread {
private String filename;
private Position curPosition;
private final int EXTERNAL_BUFFER_SIZE = 524288; // 128Kb
enum Position {
LEFT, RIGHT, NORMAL
};
public AePlayWave(String wavfile) {
filename = wavfile;
curPosition = Position.NORMAL;
}
public AePlayWave(String wavfile, Position p) {
filename = wavfile;
curPosition = p;
}
public void run() {
File soundFile = new File(filename);
if (!soundFile.exists()) {
System.err.println("Wave file not found: " + filename);
return;
}
AudioInputStream audioInputStream = null;
try {
audioInputStream = AudioSystem.getAudioInputStream(soundFile);
} catch (UnsupportedAudioFileException e1) {
e1.printStackTrace();
return;
} catch (IOException 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 (LineUnavailableException e) {
e.printStackTrace();
return;
} catch (Exception e) {
e.printStackTrace();
return;
}
if (auline.isControlSupported(FloatControl.Type.PAN)) {
FloatControl pan = (FloatControl) auline
.getControl(FloatControl.Type.PAN);
if (curPosition == Position.RIGHT)
pan.setValue(1.0f);
else if (curPosition == Position.LEFT)
pan.setValue(-1.0f);
}
auline.start();
int nBytesRead = 0;
byte[] abData = new byte[EXTERNAL_BUFFER_SIZE];
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();
}
}
}
测试函数:
/**
*TestWav.java
* Created on 4:22:18 PM Feb 20, 2009
*@author Quasar063501
*@version 0.1
*
*/
public class TestWav {
public static void main(String args[]) {
AePlayWave p = new AePlayWave("src/bg.wav");
p.start();
}
}
[解决办法]
学习~帮顶~
[解决办法]
回答的人真很多
[解决办法]
不会,只能帮顶了
[解决办法]
只能帮顶了 不会
[解决办法]
采用midi, sequncer , sequnce可以实现midi音乐的播放
[解决办法]
就是,我今天编了一天了,我的程序也只能播放MP3格式的
[解决办法]
路边,只能帮顶了
[解决办法]
路过留痕,UP
[解决办法]
up
[解决办法]
import java.applet.*;import java.awt.event.*; import java.awt.*;/** * <p>Title: Applet播放声音文件</p> * <p>Description: 使用AudioClip类加载声音文件,并当鼠标点击后开始播放</p> */public class PlayAudio extends Applet implements ActionListener{AudioClip audio; Button btExit,btOpen,btPlay,btLoop,btStop;/** *<br>方法说明:初始化Applet *<br>输入参数: *<br>返回类型: */public void init() {//加载声音文件 audio = getAudioClip(getDocumentBase(),"img/1.mid");//构造按钮 setLayout(new FlowLayout()); //使用布局管理器 btPlay=new Button("Play"); //定义Play按钮 btPlay.addActionListener(this); //给Play按钮添加一个监听事件 btLoop=new Button("Loop"); //定义Play按钮 btLoop.addActionListener(this); //给Play按钮添加一个监听事件 btStop=new Button("Stop"); //定义Play按钮 btStop.addActionListener(this); //给Play按钮添加一个监听事件//将按钮添加到Applet中 add(btPlay); add(btLoop); add(btStop);}public void actionPerformed(ActionEvent e) { //如果点击的是Play按钮 if (e.getSource()==btPlay) { play(); } //如果点击的是loop按钮 if (e.getSource()==btLoop) { loop(); } //如果点击的是stop按钮 if (e.getSource()==btStop) { stop(); }}/** *<br>方法说明:播放声音 *<br>输入参数: *<br>返回类型: */public void play(){ if (audio!=null) stop(); audio.play();}/** *<br>方法说明:循环播放声音 *<br>输入参数: *<br>返回类型: */public void loop(){ if (audio!=null) audio.loop();}/** *<br>方法说明:停止播放声音 *<br>输入参数: *<br>返回类型: */public void stop(){ if (audio!=null) audio.stop(); }}
[解决办法]
private Sequencer sequencer;private Sequence sequence;try { url = getClass().getResource("文件名"); sequencer= MidiSystem.getSequencer(false); sequencer.open(); sequence= MidiSystem.getSequence(url); sequencer.setSequence(sequence); sequencer.start(); } catch(Exception e){ e.printStackTrace(); }
[解决办法]
import java.awt.*; import java.awt.event.ActionEvent;import java.awt.event.ActionListener; import javax.swing.*; import javax.media.*;import javax.sound.midi.MidiSystem;import javax.sound.midi.Sequence;import javax.sound.midi.Sequencer;import javax.sound.midi.MidiSystem;import javax.sound.midi.Track; public class Music extends JFrame { private JMenuBar menuBar = new JMenuBar(); private JMenu mMusic=new JMenu("音乐"); private JCheckBoxMenuItem mMusic0 = new JCheckBoxMenuItem("m1"), mMusic1 = new JCheckBoxMenuItem("m2"), mMusic2 = new JCheckBoxMenuItem("m3"), mLoop = new JCheckBoxMenuItem("循环播放", true), mStop=new JCheckBoxMenuItem("停止播放"); private Sequencer sequencer; Sequence seq;private Sequencer sequencer;private Sequence sequence; Music(){ menuBar.add(mMusic); mMusic.add(mMusic0); mMusic.add(mMusic1); mMusic.add(mMusic2); mMusic.addSeparator(); mMusic.add(mLoop); mMusic.add(mStop); setJMenuBar(menuBar); setLocation((Toolkit.getDefaultToolkit().getScreenSize().width - getSize().width) / 2, (Toolkit.getDefaultToolkit().getScreenSize().height - getSize().height) / 2); try { url = getClass().getResource("文件名"); sequencer= MidiSystem.getSequencer(false); sequencer.open(); } catch (Exception ex) { ex.printStackTrace(); } mMusic0.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ mMusic0.setState(true); mMusic1.setState(false); mMusic2.setState(false); mLoop.setState(false); mStop.setState(false); mMusic0.setEnabled(false); mMusic1.setEnabled(true); mMusic2.setEnabled(true); mLoop.setEnabled(true); mStop.setEnabled(true); try { sequence= MidiSystem.getSequence(url); sequencer.setSequence(sequence); sequencer.start(); } catch(Exception e){ e.printStackTrace(); } } }); mMusic1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ mMusic0.setState(false); mMusic1.setState(true); mMusic2.setState(false); mLoop.setState(false); mStop.setState(false); mMusic0.setEnabled(true); mMusic1.setEnabled(false); mMusic2.setEnabled(true); mLoop.setEnabled(true); mStop.setEnabled(true); playMusic(1); } }); mMusic2.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ mMusic0.setState(false); mMusic1.setState(false); mMusic2.setState(true); mLoop.setState(false); mStop.setState(false); mMusic0.setEnabled(true); mMusic1.setEnabled(true); mMusic2.setEnabled(false); mLoop.setEnabled(true); mStop.setEnabled(true); playMusic(2); } }); mLoop.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ mMusic0.setState(false); mMusic1.setState(false); mMusic2.setState(false); mLoop.setState(true); mStop.setState(false); mMusic0.setEnabled(true); mMusic1.setEnabled(true); mMusic2.setEnabled(true); mLoop.setEnabled(false); mStop.setEnabled(true); for(int i=0;i<3;i++){ playMusic(i); } } }); mStop.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ mMusic0.setState(false); mMusic1.setState(false); mMusic2.setState(false); mLoop.setState(false); mStop.setState(true); mMusic0.setEnabled(true); mMusic1.setEnabled(true); mMusic2.setEnabled(true); mLoop.setEnabled(true); mStop.setEnabled(false); } }); setSize(300, 200); //设置窗口大小 setVisible(true); //设置窗口为可视 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗口时退出程序 } public void playMusic(int number){ if(number==0) sequencer.start(); if(number==1) sequencer.start(); if(number==2) sequencer.start(); } public static void main(String args[]) { new Music(); } }
[解决办法]
像看天书一样的。。。
潜水慢慢学