用Java做个MP3播放器存在的问题

类AudioInputStream 和AudioFormat 用于音频文件流的输入,但我在用的时候播放不了,跪求哪位大侠怎么样才可以让音乐放出声音来啊。。。。。

吥唥靜尐姐 2021-09-18 16:36 348 次浏览 赞 69

最新问答

  • 嘎嘎希尔

    import java.applet.Applet;
    import java.applet.AudioClip;
    import java.awt.AWTException;
    import java.awt.Frame;
    import java.awt.SystemTray;
    import java.awt.TrayIcon;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import java.io.File;
    import java.io.IOException;

    import javax.imageio.ImageIO;
    import javax.swing.*;
    public class bofan_2 extends JFrame implements ActionListener
    {
    boolean looping=false;
    File file1=null;
    AudioClip sound1;
    AudioClip chosenClip;
    private JComboBox box1=null; //歌曲列表
    private JButton butbofan=null; //播放
    private JButton butboxhuan=null; //循环播放
    private JButton buttinzi=null; //停止
    private JButton butshan=null; //上一首
    private JButton butzhantin=null; //暂停
    private JButton butxia=null; //下一首
    private TrayIcon trayIcon;//托盘图标
    private SystemTray systemTray;//系统托盘
    public bofan_2()
    {
    this.setSize(420,400);
    this.setResizable(false);
    this.setLocationRelativeTo(null);
    this.setLayout(null);
    box1=new JComboBox();
    box1.addItem("伤心太平洋");
    box1.addItem("劲爆的士高");
    box1.addItem("老夫少");
    box1.addItem("爱不再来");
    box1.addItem("抽身");
    box1.addItem("伤心城市");
    box1.addItem("二零一二");
    box1.addItem("精忠报国");
    box1.addItem("秋沙");
    box1.addItem("吻别");
    box1.addItem("音乐疯起来");
    box1.setBounds(10,20,150,20);

    butbofan=new JButton("播放");
    butbofan.addActionListener(this);
    butbofan.setBounds(165,50,60,20);

    butboxhuan=new JButton("循环播放");
    butboxhuan.addActionListener(this);
    butboxhuan.setBounds(230,50,90,20);

    buttinzi=new JButton("停止");
    buttinzi.setEnabled(false);
    buttinzi.addActionListener(this);
    buttinzi.setBounds(335,50,60,20);

    butshan=new JButton("上一首");
    butshan.addActionListener(this);
    butshan.setBounds(165,90,80,20);

    butzhantin=new JButton("暂停");
    butzhantin.setEnabled(false);
    butzhantin.addActionListener(this);
    butzhantin.setBounds(250,90,60,20);

    butxia=new JButton("下一首");
    butxia.addActionListener(this);
    butxia.setBounds(320,90,80,20);

    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.getContentPane().add(box1);
    this.getContentPane().add(butbofan);
    this.getContentPane().add(butboxhuan);
    this.getContentPane().add(buttinzi);
    this.getContentPane().add(butshan);
    this.getContentPane().add(butzhantin);
    this.getContentPane().add(butxia);
    try {
    UIManager.setLookAndFeel("org.jvnet.substance.skin.SubstanceOfficeBlue2007LookAndFeel");
    } catch (ClassNotFoundException e)
    {
    e.printStackTrace();
    } catch (InstantiationException e)
    {
    e.printStackTrace();
    } catch (IllegalAccessException e)
    {
    e.printStackTrace();
    } catch (UnsupportedLookAndFeelException e)
    {
    e.printStackTrace();
    }

    setSize(450,450);

    systemTray = SystemTray.getSystemTray();//获得系统托盘的实例
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    try {
    trayIcon = new TrayIcon(ImageIO.read(new File("004.jpg")));
    systemTray.add(trayIcon);//设置托盘的图标,0.gif与该类文件同一目录
    }
    catch (IOException e1)
    {
    e1.printStackTrace();
    }
    catch (AWTException e2)
    {
    e2.printStackTrace();
    }

    this.addWindowListener(
    new WindowAdapter(){
    public void windowIconified(WindowEvent e)
    {
    dispose();//窗口最小化时dispose该窗口
    }
    });

    trayIcon.addMouseListener(new MouseAdapter()
    {
    public void mouseClicked(MouseEvent e){
    if(e.getClickCount() == 2)//双击托盘窗口再现
    setExtendedState(Frame.NORMAL);
    setVisible(true);
    }
    });

    this.setVisible(true);
    }
    public void actionPerformed(ActionEvent e)
    {
    Object source = e.getSource();
    if (source== butbofan)
    {
    System.out.println((String) box1.getSelectedItem());
    file1=new File((String) box1.getSelectedItem()+".wav");
    butboxhuan.setEnabled(true);
    buttinzi.setEnabled(true);
    butzhantin.setEnabled(true);
    butzhantin.setText("暂停");
    try {
    sound1 = Applet.newAudioClip(file1.toURL());
    chosenClip = sound1;
    } catch(OutOfMemoryError er){
    System.out.println("内存溢出");
    er.printStackTrace();
    } catch(Exception ex){
    ex.printStackTrace();
    }
    chosenClip.play();
    this.setTitle("正在播放"+(String) box1.getSelectedItem());
    }
    if (source== butboxhuan)
    {
    file1=new File((String) box1.getSelectedItem()+".wav");
    try {
    sound1 = Applet.newAudioClip(file1.toURL());
    chosenClip = sound1;
    } catch(OutOfMemoryError er){
    System.out.println("内存溢出");
    er.printStackTrace();
    } catch(Exception ex){
    ex.printStackTrace();
    }
    looping = true;
    chosenClip.loop();
    butboxhuan.setEnabled(false);
    buttinzi.setEnabled(true);
    butzhantin.setText("暂停");
    this.setTitle("正在循环播放"+(String) box1.getSelectedItem());
    }
    if (source== buttinzi)
    {
    if (looping)
    {
    looping = false;
    chosenClip.stop();
    butboxhuan.setEnabled(true);
    butzhantin.setText("暂停");
    } else {
    chosenClip.stop();
    }
    buttinzi.setEnabled(false);
    this.setTitle("停止播放");
    }
    if(source==butshan)
    {
    butzhantin.setText("暂停");
    }
    if(source==butzhantin)
    {
    buttinzi.setEnabled(false);
    butzhantin.setText("继续");
    if(source==butzhantin)
    {
    butzhantin.setText("暂停");
    }
    }
    if(source==butxia)
    {
    butzhantin.setText("暂停");
    }
    }
    public static void main(String[] args)
    {
    bofan_2 xx=new bofan_2();
    }
    }
    /*
    可以用加载声音文件的方法:
    第一帧:mysound= new Sound();
    mysound.attachSound(声音id名字);
    ptime = 0;
    播放按钮as:
    on(release){
    mysound.start(ptime);
    }
    暂停按钮as:
    on(release){
    ptime = mysound.position/1000;
    mysound.stop();
    }
    */

    浏览 180赞 78时间 2022-06-16

用Java做个MP3播放器存在的问题

类AudioInputStream 和AudioFormat 用于音频文件流的输入,但我在用的时候播放不了,跪求哪位大侠怎么样才可以让音乐放出声音来啊。。。。。