当前位置: 代码迷 >> J2SE >> 找着书上写,第一回运行有声音,接下来就没了
  详细解决方案

找着书上写,第一回运行有声音,接下来就没了

热度:137   发布时间:2016-04-23 19:41:06.0
找着书上写,第一次运行有声音,接下来就没了


其中,点击按钮的时候会有测试出现,但就是没声音,求解啊,1的路劲没错
------解决思路----------------------
package csxc;

import java.applet.Applet;
import java.applet.AudioClip;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.io.File;
import java.net.URI;
import java.net.URL;

import javax.swing.AbstractAction;
import javax.swing.ActionMap;
import javax.swing.Box;
import javax.swing.InputMap;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.KeyStroke;

public class csxc4 extends Applet{
public static void main(String[] asd){
new MusicWindow1();
}

}
class MusicWindow1 extends JFrame{
Police listener;
JButton musicButton[];
File musicFile;
URI uri;
URL url;
AudioClip clip;
String[] musicName={"E:/1.wav","E:/1.wav","E:/1.wav","E:/1.wav","E:/1.wav","E:/1.wav","E:/1.wav"};
MusicWindow1(){
musicButton=new JButton[7];
Box musicBox=Box.createHorizontalBox();
listener=new Police();
for(int i=0;i<musicButton.length;i++){
musicButton[i]=new JButton(""+(i+1));
/**
 * 首先这里你没有加事件监听。然后这个appletaudio 好像不能放MP3,能放wav,你可以试试
 */
musicButton[i].addActionListener(new Police());
musicBox.add(musicButton[i]);
InputMap inputmap=musicButton[i].getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
inputmap.put(KeyStroke.getKeyStroke(((""+(i+1)))),"dog");
ActionMap actionmap=musicButton[i].getActionMap();
actionmap.put("dog", listener);
}
setLayout(new FlowLayout());
add(musicBox);
setBounds(120,125,290,150);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

class Police extends AbstractAction{

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
JButton button=(JButton) e.getSource();
if(clip!=null) clip.stop();
for(int i=0;i<musicButton.length;i++){
if(button==musicButton[i]){

System.out.println(i);
musicFile=new File(musicName[i]);
uri=musicFile.toURI();
try{url=uri.toURL();

}catch(Exception exp){

}
clip=Applet.newAudioClip(url);
clip.play();
}
}

}
}
}



换成wav格式的,然后就好了
  相关解决方案