Applet如何连续播放声音1.wav,2.wav

时间:2022-09-06 19:29:22
我现在是有两个AudioClip分别是Clip1,Clip2分别对应的是1.wav,2.wav文件,我页面开始加栽后,首先播放Clip1即Clip1.Start(), 我如何在能在Clip1播放完之后,立马就播放Clip2呢?从而使得声音播放是连续的~~
我听网上有人说:
音频事件
音频演奏过程中,演奏开始时、停止时、结束时都会发生音频事件,能定义此时的处理。要定义音频事件发生时的处理,有必要安装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();
}
}

}

#4


大哥,你好象没有明白的意思~
你这样只能是通过按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();
}
}

}

#4


大哥,你好象没有明白的意思~
你这样只能是通过按Button来控制的,而我是想在播放了一个音乐文件wav1,自动播放wav2,而我现在的问题是我如何知道我哪个wav1文件已经播放完毕了呢?

#5


不知道路过的大哥们,明不明白我的意思~

#6


我找遍了java api , 但是关于Audio好象没有一个侦听器~,难道我真的只有自己写一个AudioListener类吗?

#7


ding

#8


如果真的要自己来写这个监听器类,那就麻烦了,我和楼主一样期待答案!

#9


把播放音乐放在线程里,然后通过线程的交互可以实现你需要的功能