首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

求java简单背景音乐播放功能,回答者皆送分解决方法

2012-01-19 
求java简单背景音乐播放功能,回答者皆送分简单音乐播放功能,用于背景音乐。功能简单:1、点击播放按钮播放音

求java简单背景音乐播放功能,回答者皆送分
简单音乐播放功能,用于背景音乐。

功能简单:
1、点击播放按钮播放音乐,播放完一首音乐后,等待30秒后,继续播放下一首音乐,也就是3首背景音乐连续播放;
2、点击停止按钮,停止播放音乐,不再播放音乐。
就这么2个功能,不要再多的功能了,不要发一些过长、过复杂的代码。

[解决办法]
这个可以的,LZ你已经发过一次了。以后别急着结贴,可以先说好的。

Java code
//新建一个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了
[解决办法]
探讨
路过 好久没用APPLE了

[解决办法]
“定时器+媒体播放API”应该就可以解决了,代码还是自己研究吧,别人写的不一定适合你啊
[解决办法]
Java code
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();            }                                           }    }         } 


[解决办法]

Java code
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
[解决办法]

探讨
Java code
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 JMe…

[解决办法]
学习ing up
[解决办法]
学习一下,帮顶啊。
[解决办法]
Java code
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();     }} 


[解决办法]

Java code
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();         }
[解决办法]
Java code
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();         }            } 


[解决办法]
像看天书一样的。。。
潜水慢慢学

热点排行
Bad Request.