大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 用Java實現簡單音樂播放器

用Java實現簡單音樂播放器

更新時間:2019-10-14 09:07:13 來源:動力節點 瀏覽3135次



本文實例為大家分享了java實現簡單音樂播放器的具體代碼,供大家參考,具體內容如下


主要是用到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("循環播放"); 
 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, 
    "此歌曲文件已經不存在,建議刪除"); 
  } 
  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, 
    "此歌曲文件已經不存在,建議刪除"); 
   
  } 
  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, 
     "此歌曲文件已經不存在,建議刪除"); 
   
   } 
  } 
  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培訓機構小編分享的“用Java實現簡單音樂播放器”的內容,希望對大家有幫助,更多java面試題請繼續關注動力節點java培訓機構官網,每天會精彩內容分享與你

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 亚洲国产精品久久婷婷 | 中文字幕欧美日韩高清 | 在线播放色 | 香蕉网站男人网站 | 伊人色综合网 | 999免费视频 | 国产精品久久自在自2021 | 99久久国产综合精品2020 | 久热精品男人的天堂在线视频 | 日本中文字幕在线精品 | 亚洲在线视频观看 | 九九99九九视频在线观看 | 九九99热久久精品在线9 | 日韩啊啊啊 | 亚洲综合欧美 | 毛片大全在线 | 在线观看国产一区亚洲bd | 国产一区精品在线 | 91视频国产91久久久 | 久色一区| 日韩美一区二区三区 | 亚洲成年人免费网站 | 成人网18免费网 | 亚洲一区免费在线观看 | 手机看片亚洲 | 久久91精品久久久久久水蜜桃 | 久久婷婷国产一区二区三区 | 黄色在线视频网 | 色综合五月激情综合色一区 | 国产精品真实对白精彩久久 | 五月婷婷开心综合 | 欧美精品一区二区精品久久 | 精品国产一区二区三区香蕉事 | 亚洲综合成人网 | 九九热观看视频 | 欧美日韩一区二区三区毛片 | 国产亚洲精品成人久久网站 | 91新网站| 国产精品一区牛牛影视 | sihu影院永久在线影院 | 国产精品欧美韩国日本久久 |