我听网上有人说:
音频事件
音频演奏过程中,演奏开始时、停止时、结束时都会发生音频事件,能定义此时的处理。要定义音频事件发生时的处理,有必要安装AudioListener接口和记述audioAction方法内的处理。
然后,使用AudioClip对象的addAudioListener方法进入AudioListener。
事件的种类(audioAction方法的自变量、事件)在AudioListener接口文件夹中定义如下
static int AUDIO_COMPLETE 表示音乐播放结束
static int AUDIO_STARTED 表示音乐播放开始
static int AUDIO_COMPLETE 表示音乐播放停止
那我想问下,这个AudioListener是有现成的还是要自己写呢?
9 个解决方案
#1
有代码的最好贴代码,小弟感激不尽
#2
顶
#3
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class shengying extends Applet implements ActionListener
{
Button play,stop,loop;
AudioClip myMusic;
public void init()
{
play=new Button("播放");
add(play);
play.addActionListener(this);
stop=new Button("停止");
add(stop);
stop.addActionListener(this);
loop=new Button("循环");
add(loop);
loop.addActionListener(this);
myMusic=getAudioClip(getDocumentBase(),"spacemusic.au");
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==play)
{
myMusic.play();
}
if(e.getSource()==stop)
{
myMusic.stop();
}
if(e.getSource()==loop)
{
myMusic.loop();
}
}
}
import java.applet.*;
import java.awt.event.*;
public class shengying extends Applet implements ActionListener
{
Button play,stop,loop;
AudioClip myMusic;
public void init()
{
play=new Button("播放");
add(play);
play.addActionListener(this);
stop=new Button("停止");
add(stop);
stop.addActionListener(this);
loop=new Button("循环");
add(loop);
loop.addActionListener(this);
myMusic=getAudioClip(getDocumentBase(),"spacemusic.au");
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==play)
{
myMusic.play();
}
if(e.getSource()==stop)
{
myMusic.stop();
}
if(e.getSource()==loop)
{
myMusic.loop();
}
}
}
#4
大哥,你好象没有明白的意思~
你这样只能是通过按Button来控制的,而我是想在播放了一个音乐文件wav1,自动播放wav2,而我现在的问题是我如何知道我哪个wav1文件已经播放完毕了呢?
你这样只能是通过按Button来控制的,而我是想在播放了一个音乐文件wav1,自动播放wav2,而我现在的问题是我如何知道我哪个wav1文件已经播放完毕了呢?
#5
不知道路过的大哥们,明不明白我的意思~
#6
我找遍了java api , 但是关于Audio好象没有一个侦听器~,难道我真的只有自己写一个AudioListener类吗?
#7
ding
#8
如果真的要自己来写这个监听器类,那就麻烦了,我和楼主一样期待答案!
#9
把播放音乐放在线程里,然后通过线程的交互可以实现你需要的功能
#1
有代码的最好贴代码,小弟感激不尽
#2
顶
#3
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class shengying extends Applet implements ActionListener
{
Button play,stop,loop;
AudioClip myMusic;
public void init()
{
play=new Button("播放");
add(play);
play.addActionListener(this);
stop=new Button("停止");
add(stop);
stop.addActionListener(this);
loop=new Button("循环");
add(loop);
loop.addActionListener(this);
myMusic=getAudioClip(getDocumentBase(),"spacemusic.au");
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==play)
{
myMusic.play();
}
if(e.getSource()==stop)
{
myMusic.stop();
}
if(e.getSource()==loop)
{
myMusic.loop();
}
}
}
import java.applet.*;
import java.awt.event.*;
public class shengying extends Applet implements ActionListener
{
Button play,stop,loop;
AudioClip myMusic;
public void init()
{
play=new Button("播放");
add(play);
play.addActionListener(this);
stop=new Button("停止");
add(stop);
stop.addActionListener(this);
loop=new Button("循环");
add(loop);
loop.addActionListener(this);
myMusic=getAudioClip(getDocumentBase(),"spacemusic.au");
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==play)
{
myMusic.play();
}
if(e.getSource()==stop)
{
myMusic.stop();
}
if(e.getSource()==loop)
{
myMusic.loop();
}
}
}
#4
大哥,你好象没有明白的意思~
你这样只能是通过按Button来控制的,而我是想在播放了一个音乐文件wav1,自动播放wav2,而我现在的问题是我如何知道我哪个wav1文件已经播放完毕了呢?
你这样只能是通过按Button来控制的,而我是想在播放了一个音乐文件wav1,自动播放wav2,而我现在的问题是我如何知道我哪个wav1文件已经播放完毕了呢?
#5
不知道路过的大哥们,明不明白我的意思~
#6
我找遍了java api , 但是关于Audio好象没有一个侦听器~,难道我真的只有自己写一个AudioListener类吗?
#7
ding
#8
如果真的要自己来写这个监听器类,那就麻烦了,我和楼主一样期待答案!
#9
把播放音乐放在线程里,然后通过线程的交互可以实现你需要的功能