java如何實現(xiàn)簡單音樂播放器

這篇文章主要介紹了java如何實現(xiàn)簡單音樂播放器,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

成都創(chuàng)新互聯(lián)專注于企業(yè)全網(wǎng)整合營銷推廣、網(wǎng)站重做改版、站前網(wǎng)站定制設計、自適應品牌網(wǎng)站建設、H5高端網(wǎng)站建設、商城網(wǎng)站制作、集團公司官網(wǎng)建設、成都外貿(mào)網(wǎng)站建設公司、高端網(wǎng)站制作、響應式網(wǎng)頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為站前等各大城市提供網(wǎng)站開發(fā)制作服務。

具體內(nèi)容如下

主要是用到java中的swing技術,以及JMFjar中的API

備注:需要用JDK1.8才能播放音樂MP3

package baidu; import java.awt.*;import java.awt.event.*;import java.io.*;import java.util.*;import javax.swing.*;import javax.media.bean.playerbean.*; //這個包要用到JMF public class MP3 extends JFrame implements Runnable {public JLabel shijian; private JSlider sldDiameter; public MediaPlayer soumd1; public JButton playSound, loopSound, stopsound; public JButton tjian, shanc, baocun, duqu; public JPanel jp1, jp2, jp3, jp4; public JList jl; int zongmiao=0; public Vector vector, mingcheng; boolean fo = false, geshi = false; JLabel jl1, jl2, sj1, sj2; JTextField jt1, jt2; JButton queding, xiugai; int zong = 0; int a = 0, b = 0, you = 1,mm=0; int fenzhong, miaozhong; public MP3() { super("java簡單音樂播放器--嚴楷"); soumd1 = new MediaPlayer(); Container c = getContentPane(); c.setLayout(new FlowLayout()); mingcheng = new Vector(); jp1 = new JPanel(); shijian = new JLabel(); jp1.add(shijian); c.add(jp1); playSound = new JButton("開始播放"); loopSound = new JButton("循環(huán)播放"); stopsound = new JButton("停止播放"); jp2 = new JPanel(); jp2.add(playSound); jp2.add(loopSound); jp2.add(stopsound); c.add(jp2); jp4 = new JPanel(); sj1 = new JLabel(); sj2 = new JLabel(); sldDiameter = new JSlider(SwingConstants.HORIZONTAL, 0, 100, 0); sldDiameter.setMajorTickSpacing(1); sldDiameter.setPaintTicks(true); jp4.add(sj1); jp4.add(sldDiameter); jp4.add(sj2); c.add(jp4); vector = new Vector(); jl = new JList(mingcheng); jl.setVisibleRowCount(5); jl.setFixedCellHeight(40); jl.setFixedCellWidth(265); jl.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); c.add(new JScrollPane(jl)); tjian = new JButton("添加"); shanc = new JButton("刪除"); duqu = new JButton("讀取"); baocun = new JButton("保存"); jp3 = new JPanel(); jp3.add(tjian); jp3.add(shanc); jp3.add(baocun); jp3.add(duqu); c.add(jp3);  try {  String s =" C:/Users/Administrator/Music/卓依婷 - 萍聚.mp3";  ObjectInputStream input = new ObjectInputStream(   new FileInputStream(s));  lujin a1 = (lujin) input.readObject();  mingcheng = a1.b;  vector = a1.a;  jl.setListData(mingcheng); } catch (Exception e) {  System.out.println("c盤沒有保存音樂文件");  //e.printStackTrace(); }  baocun.addActionListener(new ActionListener() {  public void actionPerformed(ActionEvent event) {  JFileChooser fileChooser = new JFileChooser(); // 實例化文件選擇器  fileChooser   .setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); // 設置文件選擇模式,此處為文件和目錄均可  if (fileChooser.showSaveDialog(MP3.this) == JFileChooser.APPROVE_OPTION) { // 彈出文件選擇器,并判斷是否點擊了打開按鈕   String fileName = fileChooser.getSelectedFile()    .getAbsolutePath(); // 得到選擇文件或目錄的絕對路徑   mmm(vector, mingcheng, fileName);  }  } }); duqu.addActionListener(new ActionListener() {  public void actionPerformed(ActionEvent event) {  JFileChooser fileChooser = new JFileChooser(); // 實例化文件選擇器  fileChooser   .setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); // 設置文件選擇模式,此處為文件和目錄均可  if (fileChooser.showOpenDialog(MP3.this) == JFileChooser.APPROVE_OPTION) { // 彈出文件選擇器,并判斷是否點擊了打開按鈕   String fileName = fileChooser.getSelectedFile()    .getAbsolutePath(); // 得到選擇文件或目錄的絕對路徑   try {   ObjectInputStream input = new ObjectInputStream(    new FileInputStream(fileName));   lujin a1 = (lujin) input.readObject();   mingcheng = a1.b;   vector = a1.a;   jl.setListData(mingcheng);   } catch (Exception e) {   e.printStackTrace();   }  }  } }); playSound.addActionListener(new ActionListener() {  public void actionPerformed(ActionEvent e) {  if (jl.getSelectedIndex() >= 0) {   String yy = (String) vector.get(jl.getSelectedIndex());   File ff = new File(yy);   if (ff.exists()) {   if (yy.matches("[\\S\\s]*.mp3")|| yy.matches("[\\S\\s]*.MP3")) {    if (soumd1 != null) {    a = 0;    b = 0;    you = 0;    soumd1.stop();    }     soumd1.setMediaLocation("file:/" + yy);    fo = true;    soumd1.start();    geshi=true;    try {    Thread.sleep(500);    } catch (InterruptedException eee) {    }    zongmiao=(int)soumd1.getDuration().getSeconds();    if(zongmiao>10000)    {    try {     Thread.sleep(500);    } catch (InterruptedException ew) {    }    zongmiao=(int)soumd1.getDuration().getSeconds();    }    zongmiao=(int)soumd1.getDuration().getSeconds();    String aa=fen(zongmiao);     sj2.setText(aa);   } else    JOptionPane.showMessageDialog(null,     "播放文件格式的有錯,無法播放 建議刪除");   } else   JOptionPane.showMessageDialog(null,    "此歌曲文件已經(jīng)不存在,建議刪除");  }  else   JOptionPane.showMessageDialog(null, "請選擇音樂文件");  } }); loopSound.addActionListener(new ActionListener() {  public void actionPerformed(ActionEvent e) {  if (jl.getSelectedIndex() >= 0) {   String yy = (String) vector.get(jl.getSelectedIndex());   File ff = new File(yy);   if (ff.exists()) {   if (yy.matches("[\\S\\s]*.mp3")|| yy.matches("[\\S\\s]*.MP3")) {    if (soumd1 != null) {    a = 0;    b = 0;    you = 0;    soumd1.stop();    }     soumd1.setMediaLocation("file:/" + yy);    fo = true;    soumd1.start();    geshi=true;    try {    Thread.sleep(500);    } catch (InterruptedException we) {    }    zongmiao=(int)soumd1.getDuration().getSeconds();    if(zongmiao>10000)    {    try {     Thread.sleep(500);    } catch (InterruptedException we) {    }    zongmiao=(int)soumd1.getDuration().getSeconds();    }    zongmiao=(int)soumd1.getDuration().getSeconds();    String aa=fen(zongmiao);     sj2.setText(aa);   } else    JOptionPane.showMessageDialog(null,     "播放文件格式的有錯,無法播放 建議刪除");   } else   JOptionPane.showMessageDialog(null,    "此歌曲文件已經(jīng)不存在,建議刪除");   }  else   JOptionPane.showMessageDialog(null, "請選擇音樂文件");  } }); stopsound.addActionListener(new ActionListener() {  public void actionPerformed(ActionEvent e) {  a = 0;  b = 0;  you = 0;  mm=0;  geshi=false;  fo = false;  sldDiameter.setMaximum(100);  sldDiameter.setValue(0);  sj1.setText(null);  sj2.setText(null);  if (jl.getSelectedIndex() >= 0)   soumd1.stop();   } }); tjian.addActionListener(new ActionListener() {  public void actionPerformed(ActionEvent event) {  JFileChooser fileChooser = new JFileChooser(); // 實例化文件選擇器  fileChooser   .setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); // 設置文件選擇模式,此處為文件和目錄均可  fileChooser.setCurrentDirectory(new File(".")); // 設置文件選擇器當前目錄  fileChooser   .setFileFilter(new javax.swing.filechooser.FileFilter() {    public boolean accept(File file) { // 可接受的文件類型    String name = file.getName().toLowerCase();    return name.endsWith(".mp3")     || file.isDirectory();    }    public String getDescription() { // 文件描述    return "音樂文件(*.mp3)";    }   });  if (fileChooser.showOpenDialog(MP3.this) == JFileChooser.APPROVE_OPTION) { // 彈出文件選擇器,并判斷是否點擊了打開按鈕   String fileName = fileChooser.getSelectedFile()    .getAbsolutePath(); // 得到選擇文件或目錄的絕對路徑   vector.add(fileName);   StringBuffer buffer = daoxu(fileName);   mingcheng.add(buffer);  }  } }); shanc.addActionListener(new ActionListener() {  public void actionPerformed(ActionEvent event) {  if (jl.getSelectedIndex() >= 0) {   mingcheng.removeElementAt(jl.getSelectedIndex());   vector.removeElementAt(jl.getSelectedIndex());   jl.setListData(mingcheng);  }  } }); jl.addMouseListener(new MouseAdapter() {  public void mousePressed(MouseEvent event) {  if (event.getClickCount() == 2) {   if (jl.getSelectedIndex() >= 0) {   String yy = (String) vector.get(jl.getSelectedIndex());   File ff = new File(yy);   if (ff.exists()) {    if (yy.matches("[\\S\\s]*.mp3")|| yy.matches("[\\S\\s]*.MP3")) {    if (soumd1 != null) {     a = 0;     b = 0;     you = 0;     soumd1.stop();    }      soumd1.setMediaLocation("file:/" + yy);    fo = true;    soumd1.start();    geshi=true;    try {     Thread.sleep(500);    } catch (InterruptedException e) {    }    zongmiao=(int)soumd1.getDuration().getSeconds();    if(zongmiao>10000)    {     try {     Thread.sleep(500);     } catch (InterruptedException e) {     }    zongmiao=(int)soumd1.getDuration().getSeconds();    }    String aa=fen(zongmiao);      sj2.setText(aa);    } else    JOptionPane.showMessageDialog(null,     "播放文件格式的有錯,無法播放 建議刪除");   } else    JOptionPane.showMessageDialog(null,     "此歌曲文件已經(jīng)不存在,建議刪除");    }  }  if (event.isMetaDown()) {   if (jl.getSelectedIndex() >= 0) {   int a = jl.getSelectedIndex();   xiugai x = new xiugai();   jt1.setText(mingcheng.get(jl.getSelectedIndex()) + "");   jt2.setText(vector.get(jl.getSelectedIndex()) + "");   }  }  } }); addWindowListener(new WindowAdapter() {  public void windowClosing(WindowEvent e) {  String s = "c:\\music.txt";  mmm(vector, mingcheng, s);  System.exit(0);   } }); setSize(300, 400); setVisible(true);} public void run() { while (true) {  Date now = new Date();  //shijian.setText("當前時間: " + now.getYear()+"年"+now.getMonth()+"月"+now.getDate()+"日"+now.getTime());  shijian.setText("當前時間:"+(new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).format(new Date())+"  嚴楷");  try {  Thread.sleep(1000);  } catch (InterruptedException e) {  }  if(geshi){  you=(int)soumd1.getMediaTime().getSeconds();  mm =you%60;   if(you!=0)  if(you%60==0)  {   b++;  }   sj1.setText(b+":"+mm);  sldDiameter.setMaximum(zongmiao);  if(you!=zongmiao)   sldDiameter.setValue(you);  else {   sldDiameter.setValue(0);  mm=0;    b=0;  }  } }} public StringBuffer daoxu(String fileName) { String mc = ""; for (int i = fileName.length(); i >= 1; i--) {  if (fileName.charAt(i - 1) == '\\')  break;  mc += fileName.charAt(i - 1); } StringBuffer buffer = new StringBuffer(mc); StringBuffer mm = buffer.reverse(); return mm;} public void mmm(Vector vector, Vector mingcheng, String lujin) { lujin a = new lujin(vector, mingcheng); try {  ObjectOutputStream output = new ObjectOutputStream(new FileOutputStream(lujin));  output.writeObject(a);  output.flush();  output.close(); } catch (Exception e) {  }}public String fen(int yy) {  fenzhong = (int) yy / 60;  miaozhong = (int) yy % 60;  String sss = fenzhong + ":" + miaozhong;  return sss;} public static void main(String agrs[]) { MP3 s = new MP3(); Thread t1 = new Thread(s); t1.start(); s.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);} class xiugai extends JFrame { public xiugai() {  jl1 = new JLabel("文件名");  jt1 = new JTextField(20);  jl2 = new JLabel("文件路徑");  jt2 = new JTextField(20);  xiugai = new JButton("修改");  Container c = getContentPane();  c.setLayout(new GridLayout(3, 1));  JPanel j1 = new JPanel();  JPanel j2 = new JPanel();  JPanel j3 = new JPanel();  j1.add(jl1);  j1.add(jt1);  j2.add(jl2);  j2.add(jt2);  j3.add(xiugai);  c.add(j1);  c.add(j2);  c.add(j3);  xiugai.addActionListener(new ActionListener() {  public void actionPerformed(ActionEvent event) {   mingcheng.setElementAt(jt1.getText(), jl.getSelectedIndex());   vector.setElementAt(jt2.getText(), jl.getSelectedIndex());   jl.setListData(mingcheng);   dispose();  }  });  setSize(300, 120);  setVisible(true); }}} class lujin implements Serializable { Vector a = new Vector(); Vector b = new Vector(); public lujin(Vector vector, Vector mingcheng) { a = vector; b = mingcheng;} }

感謝你能夠認真閱讀完這篇文章,希望小編分享的“java如何實現(xiàn)簡單音樂播放器”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關知識等著你來學習!

網(wǎng)頁名稱:java如何實現(xiàn)簡單音樂播放器
轉(zhuǎn)載源于:http://muchs.cn/article28/geddjp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、網(wǎng)站設計公司、定制網(wǎng)站、自適應網(wǎng)站響應式網(wǎng)站、

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設網(wǎng)站維護公司