默认情况下,代码中的歌曲为:" Hotel California.wav"
界面已经完成。我正在尝试做的是播放任何歌曲(保存在我的目录中)写下歌曲的名称(例如我在JTextField上写的:Last Nite(.wav))并且应用需要播放该歌曲并显示消息:"正在播放:Last Nite"。
这是我的代码:
import java.io.File;
import javax.swing.JOptionPane;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JLabel;
import javax.swing.JTextField;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.GridLayout;
import java.awt.FlowLayout;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
public class Audio3 extends JFrame implements ActionListener
{
private File songFile;
private AudioInputStream audioStream;
private Clip clip;
private JButton bPlay, bStop;
private JPanel panel1, panel2;
private JTextField tfCancion;
public Audio3() throws Exception
{
super("Audio TEC");
tfCancion = new JTextField();
bPlay = new JButton("Play");
bStop = new JButton("Stop");
panel1 = new JPanel();
panel2= new JPanel();
panel1.setLayout(new GridLayout(2,2));
panel2.setLayout(new FlowLayout());
panel1.add(new JLabel("Song: "));
panel1.add(tfCancion);
panel1.add(bPlay);
panel1.add(bStop);
panel2.add(panel1);
add(panel2);
setVisible(true);
setSize(400,300);
reproducir();
}
public Audio3(String song) throws Exception
{
super("Audio TEC");
tfCancion= new JTextField();
bPlay = new JButton("Reproducir");
bStop = new JButton("Stop");
panel1 = new JPanel();
panel2 = new JPanel();
bPlay.addActionListener(this);
bStop.addActionListener(this);
panel1.setLayout(new GridLayout(2,1));
panel2.setLayout(new FlowLayout());
panel1.add(new JLabel("Cancion"));
panel1.add(tfCancion);
panel1.add(bPlay);
panel1.add(bStop);
panel2.add(panel1);
add(panel2);
reproducir(song);
setSize(400,300);
setVisible(true);
}
private void reproducir() throws Exception
{
// 1. Obtener el nombre de la cancion a reproducir
String song = "Hotel California.wav";
// 2. Relacionar el nombre de la cancion con un Archivo (File) wav
songFile = new File(song);
// 3. Preparar el Audio Stream del archivo de la cancion
audioStream = AudioSystem.getAudioInputStream(songFile);
// 4. Reproducir
clip = AudioSystem.getClip();
clip.open(audioStream);
// while(true)
clip.start();
}
private void reproducir(String song) throws Exception
{
// 1. Obtener el nombre de la cancion a reproducir
// String song = "Last_Nite.wav";
// 2. Relacionar el nombre de la cancion con un Archivo (File) wav
songFile = new File(song);
// 3. Preparar el Audio Stream del archivo de la cancion
audioStream = AudioSystem.getAudioInputStream(songFile);
// 4. Reproducir
clip = AudioSystem.getClip();
clip.open(audioStream);
// while(true)
clip.start();
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource() == bPlay)
{
clip.start();
}
if(e.getSource() == bStop)
{
clip.stop();
}
}
public static void main(String args[]) throws Exception
{
//Audio3 audio = new Audio3();
Audio3 audio = new Audio3("Hotel California.wav");
}
}