En este caso El reproductor que hice solamente abre archivos con extencion "WAV" o "MID" entre otros, para poder hacer un reproductor de audio "MP3", "OGG", "WMA" se necesitan decargar API's de la libreria de Java, es por eso que solo hice este, el mas sencillo que solo reproduce los archivos y es de la libreria Estandard de Java, mismo que se puede compilar desde consola y no necesita nada mas.
import java.awt.Color; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import java.util.logging.Level; import java.util.logging.Logger; import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.Clip; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextArea; import javax.swing.JOptionPane; public final class Reproductor extends JFrame implements ActionListener{ private JButton botonPlay = new JButton(); private JButton botonStop = new JButton(); private JButton botonBuscar = new JButton("buscar"); private JPanel panel = new JPanel(); private JTextArea area = new JTextArea(); private Sonido musica = new Sonido(); private String texto, cadena; private JLabel label = new JLabel("Reproductor de Audio Java"); public Reproductor(){ initComponents(); setTitle("NIMADRES"); setBounds(150, 150, 550, 170); setResizable(false); setDefaultCloseOperation(EXIT_ON_CLOSE); setVisible(true); } public void initComponents(){ label.setBounds(60, 0, 300, 50); label.setFont(new Font("chiller",1,30)); label.setForeground(Color.red); panel.setLayout(null); botonPlay.setBounds(50, 50, 60, 60); botonStop.setBounds(130, 50, 60, 60); botonPlay.setIcon(new ImageIcon(getClass().getResource("play.png"))); botonPlay.setBackground(Color.black); botonStop.setIcon(new ImageIcon(getClass().getResource("stop.png"))); botonStop.setBackground(Color.black); botonBuscar.setBounds(200, 50, 90, 60); botonBuscar.setBackground(Color.black); botonBuscar.setForeground(Color.red); botonBuscar.setFont(new Font("chiller",1,25)); panel.setBackground(Color.black); area.setBounds(380, 20, 200, 100); area.setEditable(false); area.setBackground(Color.black); area.setForeground(Color.red); area.setFont(new Font("chiller",1,20)); panel.add(label); panel.add(botonPlay); panel.add(botonStop); panel.add(botonBuscar); panel.add(area); add(panel); botonPlay.addActionListener(this); botonStop.addActionListener(this); botonBuscar.addActionListener(this); } public void actionPerformed(ActionEvent e) { if(e.getSource().equals(botonPlay)){ area.setText("Reproduciendo:\n"+ texto); musica.playSound(cadena); } if(e.getSource().equals(botonStop)){ area.setText("Stop"); musica.Stop(); } if(e.getSource().equals(botonBuscar)){ JFileChooser fileChooser = new JFileChooser(); int returnValue = fileChooser.showOpenDialog(null); if (returnValue == JFileChooser.APPROVE_OPTION) { File selectedFile = fileChooser.getSelectedFile(); texto = selectedFile.getName(); try { cadena = selectedFile.getAbsolutePath(); } catch (Exception ex) { Logger.getLogger(Reproductor.class.getName()). log(Level.SEVERE, null, ex); } System.out.println(selectedFile.getName()); area.setText("Reproduciendo: \n" + texto); System.out.println(cadena); } } } class Sonido{ Clip clip; AudioInputStream inputStream; public Sonido(){ } public synchronized void playSound(final String url){ new Thread(new Runnable() { public void run() { try { clip = AudioSystem.getClip(); inputStream = AudioSystem. getAudioInputStream(new File(url)); clip.open (inputStream); clip.start(); } catch (Exception e) { if(e.getMessage() != null){ JOptionPane.showMessageDialog(null ,"Archivo no Compatible" ,"Fatal Error" ,JOptionPane.ERROR_MESSAGE); System.err.println(e.getMessage()); } else{ JOptionPane.showMessageDialog(null ,"No hay Archivo seleccionado" ,"Fatal Error" ,JOptionPane.ERROR_MESSAGE); System.err.println(e.getMessage()); } } } }).start(); } public void Stop(){ try { clip.stop(); clip.close(); } catch (Exception e){ } } } }Ahora solo falta el archivo "Main.java" para finalizar.
import javax.swing.JFrame; public class Main { public static void main(String[] args) { JFrame.setDefaultLookAndFeelDecorated(true); Reproductor r = new Reproductor(); } }Estas son las imágenes que utilice para hacer los botones.
provando...
ResponderEliminar