1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
| package test;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.io.File;
import javax.sound.sampled.LineEvent;
import javax.sound.sampled.LineListener;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.ImageIcon;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JToolBar;
import javax.swing.filechooser.FileFilter;
public class AudioTestGUI {
private Thread audioPlayerThread;
private AudioTest player;
private Action load;
private Action play;
private Action stop;
private JFrame frame;
private JPanel contentPane;
private JFileChooser chooser;
private File audioFile;
private JLabel title;
public AudioTestGUI(){
player = new AudioTest();
frame = new JFrame("AudioPlayer");
contentPane = new JPanel(new BorderLayout());
chooser = new JFileChooser();
chooser.setFileFilter(new FileFilter() {
public boolean accept(File f) {
if (f.getName().endsWith(".wav"))
return true;
else
return false;
}
public String getDescription() {
return null;
}
});
contentPane.setPreferredSize(new Dimension(300, 150));
stop = new AbstractAction() {
public void actionPerformed(ActionEvent arg0) {
player.stop();
}
};
stop.putValue(Action.SMALL_ICON, new ImageIcon("stop.png"));
play= new AbstractAction() {
public void actionPerformed(ActionEvent arg0) {
player.init();
audioPlayerThread = new Thread(player);
audioPlayerThread.start();
player.getLine().addLineListener(new LineListener(){
public void update(LineEvent le) {
if(le.getType()==LineEvent.Type.STOP){
play.setEnabled(true);
stop.setEnabled(false);
}
if(le.getType()==LineEvent.Type.START){
play.setEnabled(false);
stop.setEnabled(true);
}
}
});
}
};
play.putValue(Action.SMALL_ICON, new ImageIcon("play.png"));
load = new AbstractAction() {
public void actionPerformed(ActionEvent arg0) {
int returnVal = chooser.showOpenDialog(frame);
if (returnVal == JFileChooser.APPROVE_OPTION) {
audioFile=chooser.getSelectedFile();
player.setFile(audioFile);
player.init();
title.setText("Fichier en cours de lecture: "+ audioFile.getName());
contentPane.paintAll(contentPane.getGraphics());
}
}
};
load.putValue(Action.SMALL_ICON, new ImageIcon("load.png"));
JToolBar toolbar = new JToolBar();
toolbar.add(load);
toolbar.add(play);
toolbar.add(stop);
contentPane.add(toolbar, BorderLayout.NORTH);
title=new JLabel("Aucun titre en cours de lecture");
contentPane.add(title,BorderLayout.CENTER);
frame.setContentPane(contentPane);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
new AudioTestGUI();
}
} |
Partager