import java.applet.Applet; import java.applet.AudioClip; import java.awt.Button; import java.awt.Choice; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class AudioChoiceTest extends Applet implements ActionListener { //程序中声音名字 public final String[] AUDIO={"chengyixun","lengku","wangluodang"}; //包含上述字符串数组的下拉框 private Choice choice; private AudioClip[] clips; //控制播放停止的按钮 private Button playClip; private Button loopClip; private Button stopClip; private Button stopAllClips; //跟踪当前哪些音频在播放 private boolean[] clipsPlaying; public void init() { setBackground(new Color(48,255,0)); //构建下拉框和AudioClip对象 choice=new Choice(); clips=new AudioClip[AUDIO.length]; clipsPlaying=new boolean[AUDIO.length]; for(int i=0;i<AUDIO.length;i++) { choice.add(AUDIO[i]); clips[i]=getAudioClip(getCodeBase(),"audio/"+AUDIO[i]+".MID"); //标志这个音乐是否在播放 clipsPlaying[i]=false; } add(choice); playClip=new Button("Play clip"); playClip.addActionListener(this); add(playClip); loopClip=new Button("Loop clip"); loopClip.addActionListener(this); add(loopClip); stopClip=new Button("Stop clip"); stopClip.addActionListener(this); add(stopClip); stopAllClips=new Button("Stop all clips"); stopAllClips.addActionListener(this); add(stopAllClips); //如果没什么要停止的话把按钮变灰 stopClip.setEnabled(false); stopAllClips.setEnabled(false); } //停止所有音频的播放 //Overrides: stop() in Applet /*Called by the browser or applet viewer to inform this applet that it should stop its execution. It is called when the Web page that contains this applet has been replaced by another page, and also just before the applet is to be destroyed. */
//不要stop这个函数也没关系 public void stop() { for(int i=0;i<AUDIO.length;i++) { if(clipsPlaying[i]) clips[i].stop(); } } public void actionPerformed(ActionEvent e) { int clipIndex=choice.getSelectedIndex(); AudioClip clip=clips[clipIndex]; if(e.getSource()==playClip) { clip.play(); stopClip.setEnabled(true); stopAllClips.setEnabled(true); clipsPlaying[clipIndex]=true; } else if(e.getSource()==loopClip) { clip.loop(); stopClip.setEnabled(true); stopAllClips.setEnabled(true); clipsPlaying[clipIndex]=true; } else if(e.getSource()==stopClip) { clip.stop(); stopClip.setEnabled(false); stopAllClips.setEnabled(false); clipsPlaying[clipIndex]=false; //只要有一个音频片段在播放就激活停止按钮 for(int i=0;i<AUDIO.length;i++) { if(clipsPlaying[i]) { stopClip.setEnabled(true); stopAllClips.setEnabled(true); break; } } }//end else if else if(e.getSource()==stopAllClips) { for(int i=0;i<AUDIO.length;i++) { if(clipsPlaying[i]) { clips[i].stop(); clipsPlaying[i]=false; } } stopClip.setEnabled(false); stopAllClips.setEnabled(false); } }// actionPerformed }
java制作的applet小型播放器
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
RTMP播放器的几种选择
如何选择RTMP播放器?在选择RTMP播放器时,需要综合考虑多个因素,以确保选择的播放器能够满足实际需求并提供良好的用户体验。以下是一些选择RTMP播放器的建议:1. 功能需求低延迟:对于直播场景,低延迟是非常重要的。选择支持低延迟播放的RTMP播放器,以确保观众能够实时看到主播推送端的内容。多平台支持:考虑播放器是否支持跨平台播放,包括PC、移动设备等。这有助于扩大观众范围并提高播放的灵活性。音
RTMP播放器 RTMP player windows rtmp播放器 linux rtmp播放器 大牛直播SDK -
制作VR视频播放器
最近VR火的不要不要的,但是综合起来,VR资源最多的还是全景图片和全景视频,今天在这
文件名 新版本 播放视频