applet 中播放音乐时出现问题

mingchaoyan 2010-05-16 02:45:39
import java.applet.Applet;
import java.applet.AudioClip;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JPanel;
public class Audio extends Applet {
private JPanel panel;
private JButton button;
private AudioClip sound;
private boolean play = true;
public void init() {
panel = new JPanel();
button = new JButton("Play");
sound = getAudioClip(getDocumentBase(),"DragonMusic/BG_000.mid");
panel.setLayout(new BorderLayout());
panel.add(button, BorderLayout.CENTER);
button.addActionListener(new JButtonListener());
add(panel);
sound.loop();
}
public class JButtonListener implements ActionListener{
public void actionPerformed(ActionEvent event){
if(event.getSource()==button){
System.out.println(play);
if(play) {
sound.stop();
play = false;
} else {
sound.stop();
sound.loop();
play = true;
}
}
}
}
}
// <applet code=Audio width=100 height=200></applet>


这个只是单个音乐 ,play键一按就停 再按就 重放 ,已测试可以实现,

下面我想多个音乐按上下或左右键切换, play键 同样有暂停 播放功能
可是按上两次后 再按就再也不会出声了 ,
请高手指教
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;
public class Study extends Applet{
private static int i=0;
private JPanel panel;
private JButton button;
private JButton buttonUp;
private JButton buttonDown;
private JButton buttonLeft;
private JButton buttonRight;
private AudioClip backSound[];
private AudioClip sound;
public void init(){
panel=new JPanel();
button=new JButton("Play");
buttonUp=new JButton("↑");
buttonDown=new JButton("↓");
buttonLeft=new JButton("←");
buttonRight=new JButton("→");

button.addActionListener(new JButtonListener());
buttonUp.addActionListener(new JButtonListener());
buttonDown.addActionListener(new JButtonListener());
buttonLeft.addActionListener(new JButtonListener());
buttonRight.addActionListener(new JButtonListener());

backSound=new AudioClip[67];
for(int n=0;n<67;n++){
if(n/10==0){
backSound[n]=getAudioClip(getDocumentBase(),"DragonMusic\\BG_00"+n+".mid");
}
else{
backSound[n]=getAudioClip(getDocumentBase(),"DragonMusic\\BG_0"+n+".mid");
}
}
sound=backSound[0];
sound.loop();
setSize(400,300);
panel.setLayout(new BorderLayout());
panel.add(button,BorderLayout.CENTER);
panel.add(buttonLeft,BorderLayout.WEST);
panel.add(buttonRight,BorderLayout.EAST);
panel.add(buttonUp,BorderLayout.NORTH);
panel.add(buttonDown,BorderLayout.SOUTH);
add(panel);
}
private class JButtonListener implements ActionListener{
public void actionPerformed(ActionEvent event){
if(event.getSource()==button){
sound.stop();
sound=backSound[i];
sound.loop();
}
else if(event.getSource()==buttonLeft||event.getSource()==buttonUp){
sound.stop();
if(i>0){
i--;
sound=backSound[i];
sound.loop();
}
else{
i=backSound.length-1;
sound=backSound[i];
sound.loop();
}
}
else if(event.getSource()==buttonRight||event.getSource()==buttonDown){
sound.stop();
if(i==backSound.length-1){
i=0;
sound=backSound[i];
sound.loop();
}
else{
i++;
sound=backSound[i];
sound.loop();
}
}
}
}
}

...全文
194 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
浅笑雨忆 2011-04-15
  • 打赏
  • 举报
回复
RP
mingchaoyan 2010-05-16
  • 打赏
  • 举报
回复
自己顶一下

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧