Advertisement
Guest User

MP3 Player - zDubsCrazy

a guest
May 4th, 2016
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.22 KB | None | 0 0
  1. package mp3player;
  2.  
  3. import java.awt.event.ActionEvent;
  4. import java.awt.event.ActionListener;
  5. import java.io.File;
  6.  
  7. import javax.swing.JButton;
  8. import javax.swing.JFileChooser;
  9. import javax.swing.JFrame;
  10. import javax.swing.JLabel;
  11. import javax.swing.JOptionPane;
  12. import javax.swing.JSlider;
  13. import javax.swing.UIManager;
  14. import javax.swing.event.ChangeEvent;
  15. import javax.swing.event.ChangeListener;
  16. import javax.swing.filechooser.FileNameExtensionFilter;
  17.  
  18. import javafx.embed.swing.JFXPanel;
  19. import javafx.scene.media.Media;
  20. import javafx.scene.media.MediaPlayer;
  21.  
  22. public class MP3Player {
  23.    
  24.     private static MediaPlayer player;
  25.     private static JLabel volumeIndicator = new JLabel("50");
  26.  
  27.     public static void main(final String[] args) {
  28.         try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (Exception e) {}
  29.         final JFrame frame = new JFrame("MP3 Player");
  30.         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  31.         frame.setSize(400, 275);
  32.         frame.setLocationRelativeTo(null);
  33.         frame.setResizable(false);
  34.         frame.setLayout(null);
  35.        
  36.         JFXPanel panel = new JFXPanel();
  37.         panel.setLayout(null);
  38.         frame.setContentPane(panel);
  39.        
  40.         final JFileChooser chooser = new JFileChooser();
  41.         chooser.setFileFilter(new FileNameExtensionFilter("Arquivos de música", "mp3", "wav"));
  42.        
  43.         final JButton btnSelect = new JButton("Selecionar arquivo");
  44.         btnSelect.setBounds(25, 25, 150, 50);
  45.         btnSelect.setFocusable(false);
  46.        
  47.         final JButton btnPause = new JButton("Pausar");
  48.         btnPause.setEnabled(false);
  49.         btnPause.setBounds(200, 25, 150, 50);
  50.         btnPause.setFocusable(false);
  51.        
  52.         final JButton btnPlay = new JButton("Tocar");
  53.         btnPlay.setEnabled(false);
  54.         btnPlay.setBounds(25, 100, 150, 50);
  55.         btnPlay.setFocusable(false);
  56.        
  57.         final JButton btnStop = new JButton("Parar");
  58.         btnStop.setEnabled(false);
  59.         btnStop.setBounds(200, 100, 150, 50);
  60.         btnStop.setFocusable(false);
  61.        
  62.         final JSlider volume = new JSlider(0, 100, 50);
  63.         volume.setEnabled(false);
  64.         volume.setBounds(125, 175, 150, 50);
  65.         volume.setFocusable(false);
  66.        
  67.         volume.addChangeListener(new VolumeAdapter());
  68.        
  69.         volumeIndicator.setBounds(195, 220, 30, 20);
  70.        
  71.         btnSelect.addActionListener(new ActionListener() {
  72.             @Override
  73.             public void actionPerformed(ActionEvent e) {
  74.                 chooser.showOpenDialog(frame);
  75.                 final File f = chooser.getSelectedFile();
  76.                 if (f == null) {
  77.                     JOptionPane.showMessageDialog(null, "Arquivo inválido!", "MP3 Player",
  78.                             JOptionPane.ERROR_MESSAGE);
  79.                     return;
  80.                 }
  81.                 Media media = new Media(f.toURI().toString());
  82.                 player = new MediaPlayer(media);
  83.                 player.setVolume(0.5);
  84.                 player.play();
  85.                 player.setAutoPlay(true);
  86.                 btnSelect.setEnabled(false);
  87.                 btnPause.setEnabled(true);
  88.                 btnStop.setEnabled(true);
  89.                 volume.setEnabled(true);
  90.             }
  91.         });
  92.        
  93.         btnPause.addActionListener(new ActionListener() {
  94.             @Override
  95.             public void actionPerformed(ActionEvent e) {
  96.                 player.pause();
  97.                 btnPause.setEnabled(false);
  98.                 btnStop.setEnabled(false);
  99.                 btnPlay.setEnabled(true);
  100.             }
  101.         });
  102.        
  103.         btnPlay.addActionListener(new ActionListener() {
  104.             @Override
  105.             public void actionPerformed(ActionEvent e) {
  106.                 player.play();
  107.                 btnPlay.setEnabled(false);
  108.                 btnStop.setEnabled(true);
  109.                 btnPause.setEnabled(true);
  110.             }
  111.         });
  112.        
  113.         btnStop.addActionListener(new ActionListener() {
  114.             @Override
  115.             public void actionPerformed(ActionEvent e) {
  116.                 player.stop();
  117.                 volumeIndicator.setText("50");
  118.                 volume.setValue(50);
  119.                 btnPlay.setEnabled(false);
  120.                 btnPause.setEnabled(false);
  121.                 btnStop.setEnabled(false);
  122.                 volume.setEnabled(false);
  123.                 btnSelect.setEnabled(true);
  124.             }
  125.         });
  126.        
  127.         panel.add(btnSelect);
  128.         panel.add(btnPause);
  129.         panel.add(btnPlay);
  130.         panel.add(btnStop);
  131.         panel.add(volume);
  132.         panel.add(volumeIndicator);
  133.         frame.setVisible(true);
  134.     }
  135.  
  136.     private static class VolumeAdapter implements ChangeListener {
  137.  
  138.         @Override
  139.         public void stateChanged(ChangeEvent e) {
  140.             JSlider slider = (JSlider) e.getSource();
  141.             if (!(slider.getValueIsAdjusting())) {
  142.                 double volume = (double) slider.getValue() / 100;
  143.                 player.setVolume(volume);
  144.                 volumeIndicator.setText("" + slider.getValue());
  145.             }
  146.         }
  147.     }
  148.  
  149. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement