亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mediaplayer.java

?? 一個小的播放器 大家可以參考一下 呵呵 這里還用到了一個其他的插件
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
 private void createPlayer()
 {
  closePreviosPlayer();//關(guān)閉先前的媒體播放器
  String extendName="此播放器不支持"+title.substring(title.lastIndexOf(".")+1)+"格式";
  try
  {
   player=Manager.createPlayer(file.toURL());//javax.media.Manager直接繼承于java.lang.object,且它為final,不能被繼承
   player.addControllerListener(new ControllerHand());
   player.start();
   addList(files);
   index=fileName.size()-1;
   list.setSelectedValue(numList.elementAt(index),true);
   setTitle(title);
   
  }
  catch(Exception e)
  {
   JOptionPane.showMessageDialog(this,extendName,"出錯了!!",JOptionPane.ERROR_MESSAGE);
   setTitle(extendName);
  } 
 }
 
 private void closePreviosPlayer()//把先前打開的播放器關(guān)閉
 {
  if(player==null)
  return;
  player.stop();      
  player.deallocate(); //停止播放并且重新裝載DateSource
  
  Component visual =player.getVisualComponent();
  Component control=player.getControlPanelComponent();
  
  if(visual!=null)
  {
   panel.remove(visual);
  }
  if(control!=null)
  {
   panel.remove(control);
  }
  
 }
 
 private class ControllerHand implements ControllerListener
 {
  public void controllerUpdate(ControllerEvent e)
  {
   if(e instanceof RealizeCompleteEvent)//如果是實例化完成事件
   {
    Component visual=player.getVisualComponent();//獲得一個播放所有視頻媒體的可視組件
    
    if(visual!=null)//如果圖象存在則去掉以前的圖象加載當前圖象
    {
        panel.removeAll();
        panel.add(visual,BorderLayout.CENTER);
    }
    Component control=player.getControlPanelComponent();//是一個操作時間軸的可視組件(包括開始,停止,回放),
                                           //也包含了一些媒體流的有用信息
    
    if(control!=null)
    {
     panel.add(control,BorderLayout.SOUTH);
    }
    panel.doLayout();//提示布局管理器布局此組件,否則布局的位置不正確
    return;
   }
   
   if (e instanceof EndOfMediaEvent) //如果到達了文件尾則進行如下事件
            { 
                if(buttonValues[0].isSelected())//進行隨即播放
                {
                 if(fileName.size()==0)
                 return;
                 index=(int)(Math.random()*fileName.size());
                }
                if(buttonValues[1].isSelected())//進行順序循環(huán)播放
                {
                 if(fileName.size()==0)
                 return;//必須有此if語句,否則當用戶把播放列表清空的時候發(fā)生異常,偶然的機會發(fā)現(xiàn)的
                 //現(xiàn)在感覺測試軟件真是太重要了,看來以后程序做好后要反復測試,考慮各種情況
                 index=(index+1)%fileName.size();
                }
                if(buttonValues[2].isSelected())//進行單曲播放
                {
                    player.setMediaTime (new Time (0)); //將時間返回開始的0時刻然后播放
                    player.start();  
                } 
                createPlayer2();
                
      }
     }
 }
 private void exity_n()//退出操作,先保存列表,然后退出
 {
  saveList();
  System.exit(0);
  
 }
 //清單改變一次就重新載入一次
  private void addList(String vf)//像播放清單中增加選項
 {
   fileName.addElement(vf);
   numList.addElement((numList.size()+1)+"."+vf);
   dirName.addElement(title);
   list.setListData(numList);
 }
 private void createPlayer2()//創(chuàng)建一個player對象并使其播放
//當雙擊鼠標時會播放鼠標擊中的歌曲,并且不會出現(xiàn)能播放的格式也播放不了,在刷新文件后(即雙擊鼠標時更換播放曲目時)使用
 {
  
  try{
  	title=dirName.elementAt(index).toString();//將當前目錄名設(shè)為title
  }
  catch(ArrayIndexOutOfBoundsException e)//如果數(shù)組越界則返回
  {return;}
  file=new File(title);//以title為名創(chuàng)建一個file實例,下面將file轉(zhuǎn)換為URL用來創(chuàng)建player對象
  closePreviosPlayer();//關(guān)閉先前的媒體播放器
  String extendName="此播放器不支持"+title.substring(title.lastIndexOf(".")+1)+"格式";
  try
  {
   player=Manager.createPlayer(file.toURL());//javax.media.Manager直接繼承于java.lang.object,且它為final,不能被繼承                                     //Manager用來創(chuàng)建Player對象
   player.addControllerListener(new ControllerHand());
   player.start();//設(shè)置為開始播放
   list.setSelectedValue(numList.elementAt(index),true);//將當前所在 的位置在list中置為選中項
   setTitle(title); //名稱為當前目錄名稱
  }
  catch(Exception e)//若出現(xiàn)不能播放的格式,則將該文件從播放列表中刪除,并且給出相應的提示信息
  {
   String ex=null;
   try{
   	ex=fileName.elementAt(index).toString();//獲得不能播放的文件名稱
   }
   catch(Exception e1){return;}
   fileName.removeElementAt(index);
   numList.removeAllElements();//將該文件從播放列表中刪除
   Enumeration enumFile=fileName.elements();//將其他的文件依次向上提前,得到新的播放那個列表
   while(enumFile.hasMoreElements())
   {
    numList.addElement((numList.size()+1)+"."+enumFile.nextElement());
    
   }
   
   dirName.removeElementAt(index);
   list.setListData(numList);
  JOptionPane.showMessageDialog(this,"已經(jīng)從播放列表中刪除 "+"\""+ex+"\""+" 文件,"
   +"因為此播放器不支持"+ex.substring(ex.lastIndexOf(".")+1)+"格式","出錯了!!!",JOptionPane.ERROR_MESSAGE);
  }
  
 }
 

  private void saveList()//將播放列表保存到list中使下次執(zhí)行是在上一次執(zhí)行的基礎(chǔ)上
 {//Enumeration接口在包java.util 中
  //它生成一系列元素,一次生成一個,
   //連續(xù)調(diào)用nextElement方法將返回一系列的連續(xù)元素  
  Enumeration enumFile=fileName.elements();
  Enumeration enumDir =dirName.elements();
  try
  {
   output=new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(listFile)));
   while(enumFile.hasMoreElements())//如果enumFile中有元素則寫入文件中
   {//將文件名與目錄都保存在ListValues對象中最終實現(xiàn)保存在文件中
    listWriteFile=new ListValues(enumFile.nextElement().toString(),enumDir.nextElement().toString());
    output.writeObject(listWriteFile);//將對象寫入文件中
   }
   output.flush();
   output.close();
   
  }
  catch(Exception e)
  {
   e.printStackTrace();
  }
  
 }

 public void run()//其中實現(xiàn)了將選擇的文件加入到播放列表中
           //并進行隨即播放,即只要執(zhí)行該文件(播放列表不空)則就會有歌曲播放
 {
  try
  {
   Thread.sleep(1);
  }
  catch(InterruptedException e)
  {
  }
  
  try
  {
   if(!listFile.exists())//如果讀取的文件不存在,則創(chuàng)建一個新的文件
   {
    listFile.createNewFile();
    return;
   }
   
   input=new ObjectInputStream(new BufferedInputStream(new FileInputStream(listFile)));
   //以文件名創(chuàng)建一個對象輸入流,然后將該對象加入到播放清單中
   while(true)//循環(huán)將歌曲對象加入到播放列表中
   {//ListValues類實現(xiàn)了接口Serializable 
    listWriteFile=(ListValues)input.readObject();//將對象讀入到listWriteFile類對象中
    fileName.addElement(listWriteFile.getFileName());//將文件對象名加入文件名向量中
    numList.addElement((numList.size()+1)+"."+listWriteFile.getFileName());//將文件對象加入清單并
                                                               //實現(xiàn)加入的對象從1一直向下排序
    dirName.addElement(listWriteFile.getDirName());//將目錄名加入到目錄向量中
       
   }
  }
  catch(EOFException e)
  {
   try
   {
    if(!fileName.isEmpty())
    {
    	 input.close();//確認有元素存在并加載完畢后關(guān)閉輸入流
    }
   
   }
   catch(IOException e1)
   {
    JOptionPane.showMessageDialog(this,"文件被非正常關(guān)閉",
    "非法關(guān)閉",JOptionPane.ERROR_MESSAGE);
   }
   
  }
  catch(ClassNotFoundException e)
  {
   JOptionPane.showMessageDialog(this,"不能創(chuàng)建對象","對象創(chuàng)建失敗",JOptionPane.ERROR_MESSAGE);
  }
  catch(IOException e)
  {
   JOptionPane.showMessageDialog(this,"不能讀取文件",
   "讀取文件失敗",JOptionPane.ERROR_MESSAGE);
  }
  finally
  {
   try
   {
    if(input!=null)//輸入對象流不為空則關(guān)閉
    input.close();
   }
   catch(IOException e)
   {
   }
   
   if(dirName.isEmpty())//防止Vector越界
      {
        return;
      }
   index=(int)(Math.random()*(fileName.size()));//產(chǎn)生隨即數(shù),進行隨即播放
   list.setListData(numList);//將載入文件內(nèi)容加入到list中用以后面進行保存   
   createPlayer2();
  }
  
 }
 private void checkMenu(MouseEvent e)//標志選中項
 {
  
  if(e.isPopupTrigger())//判斷是否要求彈出一個菜單 
  {
   indexForDel=list.locationToIndex(e.getPoint());//獲取當前鼠標點使下標轉(zhuǎn)換為用戶選中的文件
   int[] selected={index,indexForDel};//建立選中數(shù)組并賦值
   
   list.setSelectedIndices(selected);//選擇索引數(shù)組中指定的項目,并更新列表框
   popupMenu.show(list,e.getX(),e.getY());//在相對于初始組件list的 x、y 位置顯示彈出式菜單
   
  }
 }
 String reNames() 
 {
  String name=JOptionPane.showInputDialog(this,"請輸入新的名字",fileName.elementAt(indexForDel));
  return name;
 }
 
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
51精品久久久久久久蜜臀| 亚洲精品成a人| 一区二区三区在线看| 另类欧美日韩国产在线| 色婷婷激情久久| 国产欧美精品一区| 日本网站在线观看一区二区三区| 成人免费毛片嘿嘿连载视频| 欧美一区二区免费| 午夜久久久久久| 在线这里只有精品| 国产精品素人一区二区| 国产曰批免费观看久久久| 88在线观看91蜜桃国自产| 亚洲欧美另类综合偷拍| av在线不卡免费看| 日本一区二区不卡视频| 久久99国产精品麻豆| 欧美一区午夜精品| 日本成人中文字幕在线视频| 欧美影视一区二区三区| 亚洲日本护士毛茸茸| 97se狠狠狠综合亚洲狠狠| 日本一二三不卡| av在线这里只有精品| 亚洲欧美自拍偷拍| 成人精品在线视频观看| 中文字幕巨乱亚洲| 成人国产精品免费网站| 中文字幕中文字幕一区二区 | 亚洲欧洲日韩在线| 成人激情动漫在线观看| 中文字幕一区二区三区色视频 | 亚洲色图在线看| 99久久精品免费精品国产| |精品福利一区二区三区| 99久免费精品视频在线观看| 亚洲精品免费电影| 色婷婷一区二区| 亚洲午夜久久久久久久久久久 | 美女网站一区二区| 欧美精品一区二区三区很污很色的 | 在线观看区一区二| 亚洲动漫第一页| 欧美精品xxxxbbbb| 久久精品国产精品亚洲红杏| 欧美精品一区二区不卡| 国产精品一区二区久激情瑜伽| 久久精品免费在线观看| 成人app在线观看| 亚洲一卡二卡三卡四卡无卡久久 | 成人综合激情网| 国产精品国产自产拍在线| 91色在线porny| aaa欧美大片| 日本一区二区三区电影| 成人av影院在线| 亚洲国产另类精品专区| 26uuu色噜噜精品一区| 在线观看日韩高清av| 美女视频黄a大片欧美| 欧美激情在线一区二区三区| 欧美性受xxxx| 国产精品一品视频| 亚洲国产日韩a在线播放| 精品日本一线二线三线不卡| 99久久免费精品| 久久99精品久久久久久国产越南| 国产精品精品国产色婷婷| 欧美日韩国产精选| 不卡大黄网站免费看| 日韩综合小视频| 国产精品成人一区二区艾草 | 自拍偷拍国产精品| 欧美久久久久久久久久| 国产mv日韩mv欧美| 石原莉奈在线亚洲三区| 日韩理论片网站| 久久综合久久综合九色| 欧美久久久一区| 91麻豆精东视频| 国产美女精品在线| 日日欢夜夜爽一区| 亚洲欧美一区二区久久| 久久亚洲精品国产精品紫薇| 欧美色手机在线观看| 粉嫩aⅴ一区二区三区四区| 日韩高清电影一区| 一区二区三区不卡视频在线观看| 久久综合999| 欧美一区二区在线看| 欧美性受极品xxxx喷水| 97se亚洲国产综合自在线| 国产成人自拍在线| 国产在线精品一区二区夜色| 午夜精品福利一区二区蜜股av| 亚洲欧美自拍偷拍| 中文在线一区二区| 久久久另类综合| 久久你懂得1024| 久久精品夜色噜噜亚洲aⅴ| 欧美一区二区三区在线看| 精品视频资源站| 欧美影院午夜播放| 91久久人澡人人添人人爽欧美| 波多野结衣中文一区| 成人综合在线视频| 国产成人午夜精品影院观看视频 | 成人美女在线观看| 国产一区二区h| 九一九一国产精品| 蜜桃视频在线观看一区| 蜜臀精品久久久久久蜜臀| 免费成人美女在线观看.| 日本亚洲电影天堂| 久久精品国产久精国产| 国产一区亚洲一区| 成人黄色小视频| 日本韩国视频一区二区| 在线欧美一区二区| 69堂成人精品免费视频| 91精品午夜视频| 精品三级在线观看| 国产精品午夜久久| 亚洲三级电影网站| 亚洲线精品一区二区三区| 三级精品在线观看| 激情综合网激情| fc2成人免费人成在线观看播放| 波多野结衣亚洲一区| 色婷婷精品大在线视频| 制服丝袜亚洲色图| 久久久久久久久岛国免费| 久久久www成人免费毛片麻豆| 中文字幕免费不卡| 亚洲午夜久久久久久久久电影网| 日韩精品免费专区| 国产精品白丝jk黑袜喷水| 99久久久免费精品国产一区二区| 91福利精品视频| 精品久久国产老人久久综合| 国产精品护士白丝一区av| 亚洲在线视频网站| 国产在线精品一区二区不卡了 | 日韩免费观看2025年上映的电影| 久久日一线二线三线suv| 一区精品在线播放| 日本成人在线网站| 成人精品国产免费网站| 欧美日韩一区成人| 欧美激情艳妇裸体舞| 亚洲国产美国国产综合一区二区| 国产毛片一区二区| 欧美三级一区二区| 欧美韩国日本不卡| 免费一级欧美片在线观看| 91在线观看美女| 精品国产一区二区三区不卡| 亚洲人午夜精品天堂一二香蕉| 六月婷婷色综合| 在线精品视频免费播放| 久久婷婷色综合| 蜜桃久久av一区| 欧美日本一区二区| 国产精品理伦片| 国产一区二区三区四区在线观看| 欧美色图一区二区三区| 中文字幕欧美激情| 久久国产尿小便嘘嘘尿| 欧美日韩精品一二三区| 亚洲女同女同女同女同女同69| 激情伊人五月天久久综合| 欧美三级中文字幕| 亚洲人成在线观看一区二区| 国产精品香蕉一区二区三区| 欧美大肚乱孕交hd孕妇| 亚洲第一主播视频| 欧洲亚洲国产日韩| 亚洲欧美另类在线| av一二三不卡影片| 国产精品三级在线观看| 国产成人一级电影| 亚洲男女毛片无遮挡| 国产在线国偷精品产拍免费yy| 欧美丰满高潮xxxx喷水动漫| 一区二区三区不卡在线观看 | eeuss鲁片一区二区三区| 久久精品人人爽人人爽| 国产一区二区精品久久| 2021国产精品久久精品 | 一区二区三区色| 99久久精品一区| 亚洲婷婷综合久久一本伊一区| 国产99久久久国产精品| 久久嫩草精品久久久精品| 国精品**一区二区三区在线蜜桃| 精品日韩一区二区三区| 精品在线免费观看| 久久久影院官网| 成人动漫av在线|