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

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

?? mediaplayer.java

?? 這是一個(gè)實(shí)現(xiàn)mediaplayer的java小程序
?? JAVA
?? 第 1 頁 / 共 2 頁
字號(hào):
    	 * int result=fileChooser.showOpenDialog(this);//創(chuàng)建文件打開對(duì)話框,并設(shè)定此程序?yàn)楦复翱诒O(jiān)控*/ 

    	/*通過result的值來判斷文件是否打開成功 
    	 * *JFileChooser類有很多靜態(tài)成員變量 
    	 * **/ 
    	/*if(result==JFileChooser.CANCEL_OPTION) 
    	 * { 
    	 * file=null;//file已經(jīng)在類中定義,如果選擇取消,file指向?yàn)榭?
    	 * } 
    	 * else
    	 * 
    	 * { 
    	 * file=fileChooser.getSelectedFile();//獲得文件對(duì)象 
    	 * title=file.getAbsolutePath();//取得文件的絕對(duì)路徑并且賦給title設(shè)定標(biāo)題 
    	 * }*/ 
    	//if(fd==null) 

    	//{ 
    	//String filename="java音頻播放器"; 
    	fd = new FileDialog(MediaPlayer.this); 
    	
    	fd.setVisible(true); 
    	if (fd.getFile() != null) 
    	{ 
    		title = fd.getDirectory() + fd.getFile();//原因請見同目錄下的FileDialogDemo.java文件 
    		files=fd.getFile(); 
    		//dir =fd.getDirectory(); 
    		file=new File(title); 
    		createPlayer(); 
    	} 
    	//title=filename; 
    	//fd=null;//缺少此句如果第一次打開文件的時(shí)候取消操作的時(shí)候第二次也不能打開文件了 
    	//} 
    	
    } 

    private void openDir() 
    { 
    	JFileChooser fileChooser=new JFileChooser(); 
    	fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); 
    	int result=fileChooser.showOpenDialog(MediaPlayer.this);

    	if(result==JFileChooser.CANCEL_OPTION) 
    		return; 
    	file=fileChooser.getSelectedFile(); 
    	
    	if(file==null||file.getName().equals("")) 
    		JOptionPane.showMessageDialog(this,"錯(cuò)誤的路徑", 
    				"出錯(cuò)了",JOptionPane.ERROR_MESSAGE); 
    	String[] sFiles=file.list(); 
    	
    	for(int i=0;i<sFiles.length;i++) 
    	{ 
    		fileName.addElement(sFiles[i]); 
    		numList.addElement((numList.size()+1)+"."+sFiles[i]); 
    		dirName.addElement(file.getAbsolutePath()+"\\"+sFiles[i]); 
    	} 
    	list.setListData(numList); 


    	/*fd=new FileDialog(MediaPlayer.this); 
    	 * fd.setVisible(true); 
    	 * if(fd.getDirectory()!=null) 
    	 * { 
    	 * File fileDir=new File(fd.getDirectory()); 
    	 * String[] ss=fileDir.list(); 
    	 * for(int i=0;i<ss.length;i++) 
    	 * { 
    	 * System.out.println(ss[i]); 
    	 * } 
    	 * }*/ 
     } 


    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); 
    		//list.setSelectedIndex(index); 
    		//list.setSelectionForeground(Color.blue); 
    		setTitle(title); 

    		//addList("files");//到播放清單 
    		//title="file.getAbsoluteFile()"; 

    	} 
    	catch(Exception e) 
    	{ 
    		JOptionPane.showMessageDialog(this,extendName,"出錯(cuò)了!!",JOptionPane.ERROR_MESSAGE); 
    		setTitle(extendName); 
    	} 


    
    } 

    private void closePreviosPlayer() 
    { 
    	if(player==null) 
    		return; 

    	//player.close();//首先停止播放 
    	/* 
    	 * *不能用上面的代碼停止,要用下面的兩行取代,否則Component visual =player.getVisualComponent();發(fā)生異常 
    	 * **/ 
    	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(); //一個(gè)播放所有視頻媒體的可視組件

    			if(visual!=null) 
    			{ 
    				System.out.println("音頻播放器不支持視頻圖象功能"); 
    			    setTitle("音頻播放器不支持視頻圖象功能"); 

    			    //panel.removeAll(); 
    			    //panel.add(visual,BorderLayout.CENTER); 
    			} 
    			/*else 
    			 * { 
    			 * panel.add(label,BorderLayout.CENTER); 
    			 * }*///此else語句可以防止因?yàn)樵瓉聿シ乓曨l圖象后以后沒有界面 


    			Component control=player.getControlPanelComponent();//一個(gè)操作時(shí)間軸的可視組件(包括開始,停止,回放),也包含了一些媒體流的有用信息 
    			//Component voice=player.getGainControl().getControlComponent(); 
    			if(control!=null) 
    			{ 


    				panel.add(control,BorderLayout.SOUTH); 
    			} 
    			
    			//c.validate(); 
    			panel.doLayout(); 
    			return; 
    		} 
    		
    		if (e instanceof EndOfMediaEvent) 
    		{ 
    			/*if (loop) 
    			 * { 
    			 * player.setMediaTime (new Time (0)); 
    			 * player.start (); 
    			 * } 
    			 * return;*/ 
    			if(buttonValues[0].isSelected()) 
    			{ 
    				if(fileName.size()==0) 
    					return; 
    				index=(int)(Math.random()*fileName.size()); 
    			} 
    			
    			if(buttonValues[1].isSelected()) 
    			{ 
    				if(fileName.size()==0) 
    					return;//必須有此if語句,否則當(dāng)用戶把播放列表清空的時(shí)候發(fā)生異常,偶然的機(jī)會(huì)發(fā)現(xiàn)的 
                          //現(xiàn)在感覺測試軟件真是太重要了,看來以后程序做好后要反復(fù)測試,考慮各種情況 
    				index=(index+1)%fileName.size(); 
    			} 

    			if(buttonValues[2].isSelected()) 
    			{ 
    				player.setMediaTime (new Time (0)); 
    				player.start(); 
    			} 
    			createPlayer2(); 

    		} 
    	} 
    } 
   
    private void exity_n() 
    { 
    	int exi; 
    	exi=JOptionPane.showConfirmDialog(this,"真的要離開么?","退出程序",JOptionPane.YES_NO_OPTION, 
    			JOptionPane.QUESTION_MESSAGE); 
    	//if(exi==null) 
    	if(exi==JOptionPane.YES_OPTION) 
    	{ 
    		saveList(); 
    	    setVisible(false);
    	    
    	} 

    	return; 

    } 

    private void addList(String vf) 
    { 
    	//fileReadList=new fileReadList(fdd,) 
    	//try 
    	//{ 
    	//int i=0; 
    	//fileName.addElement((fileName.size()+1)+"."+vf); 
    	fileName.addElement(vf); 
    	numList.addElement((numList.size()+1)+"."+vf); 
    	//fileName.addElement(++i+"."+vf); 
    	dirName.addElement(title); 
    	list.setListData(numList); 
    	//} 
    	/*catch(Exception e) 
    	 * { 
    	 * e.printStackTrace(); 
    	 * //System.out.println(e.getMessage()); 
    	 * }*/ 


    } 

    private void createPlayer2() 
    { 

    	try
    	{
    		title=dirName.elementAt(index).toString();
    	} 
    	//title=dirName.elementAt(index).toString(); 
    	catch(ArrayIndexOutOfBoundsException e) 
    	{return;} 
    	file=new File(title); 
    	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(); 
    		//list.setSelectedIndex(index); 
    		list.setSelectedValue(numList.elementAt(index),true); 
    		list.setSelectionForeground(Color.blue); 
    		//list.setSelectedIndex(index); 
    		//addList(files); 
    		setTitle(title); 

    		//addList("files");//到播放清單 

    	} 
    	catch(Exception e) 
    	{ 
    		//JOptionPane.showMessageDialog(this,extendName,"出錯(cuò)了!!",JOptionPane.ERROR_MESSAGE); 
    		//setTitle(extendName); 
    		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(fileName); 
    		list.setListData(numList); 


    		System.out.println("已經(jīng)從播放列表中刪除 "+"\""+ex+"\""+" 文件," 
    			+"因?yàn)榇瞬シ牌鞑恢С?quot;+ex.substring(ex.lastIndexOf(".")+1)+"格式," 
    				+"不過沒有從硬盤真正刪除"); 
    		if(numList.size()!=0) 
    		{ 
    			index%=numList.size(); 
    			createPlayer2(); 
    		} 
    	} 

    } 

    private void saveList() 
    { 
    	Enumeration enumFile=fileName.elements(); 
    	Enumeration enumDir =dirName.elements(); 
    	try 
    	{ 
    		output=new ObjectOutputStream(new FileOutputStream(listFile)); 
    		while(enumFile.hasMoreElements()) 
    		{ 
    			listWriteFile=new ListValues(enumFile.nextElement().toString(),enumDir.nextElement().toString()); 
    			output.writeObject(listWriteFile); 
    		} 
    		output.flush(); 
    		output.close(); 

    	} 
    	catch(Exception e) 
    	{
    		e.printStackTrace(); 
        } 
    	/*finally 
    	 * { 
    	 * output.flush(); 
    	 * output.close();//郁悶,這兩行不能寫在這里,實(shí)在是一大遺憾啊,不知道有什么別的方法 
    	 * }*/ 


    } 

    public void run() 
    { 
    	try 
    	{ 
    		Thread.sleep(1); 
    	} 
    	catch(InterruptedException e) 
    	{ 
    		
    	} 

    	try 
    	{ 
    		if(!listFile.exists()) 
    			listFile.createNewFile();//防止不存在此文件發(fā)生讀取錯(cuò)誤,這兩行代碼保證不存在的情況下自動(dòng)建立 
    		input=new ObjectInputStream(new FileInputStream(listFile)); 
    		while(true) 
    		{ 
    			listWriteFile=(ListValues)input.readObject(); 
    			fileName.addElement(listWriteFile.getFileName()); 
    			numList.addElement((numList.size()+1)+"."+listWriteFile.getFileName()); 
    			dirName.addElement(listWriteFile.getDirName()); 

    		} 
    	} 
    	catch(EOFException e) 
    	{ 
    		try 
    		{ 
    			if(!fileName.isEmpty()) 
    				input.close();//確認(rèn)有元素存在并加載完畢后關(guān)閉輸入流 
    		} 
    		catch(IOException e1) 
    		{ 
    			JOptionPane.showMessageDialog(MediaPlayer.this,"文件被非正常關(guān)閉", 
    					"非法關(guān)閉",JOptionPane.ERROR_MESSAGE); 
    		} 

    	} 
    	catch(ClassNotFoundException e) 
    	{ 
    		JOptionPane.showMessageDialog(MediaPlayer.this,"不能創(chuàng)建對(duì)象","對(duì)象創(chuàng)建失敗",JOptionPane.ERROR_MESSAGE); 
    	} 
    	catch(IOException e) 
    	{ 
    		JOptionPane.showMessageDialog(MediaPlayer.this,"不能讀取文件", 
    				"讀取文件失敗",JOptionPane.ERROR_MESSAGE); 
    	} 
    	finally 
    	{ 
    		if(dirName.isEmpty())//防止Vector越界 
    			{ 
    			return; 
    			} 
    		index=(int)(Math.random()*(fileName.size()));//產(chǎn)生隨即數(shù),進(jìn)行隨即播放 
    		list.setListData(numList); 
    		//list.setListData(fileName); 
    		//list.setSelectedValue(fileName.elementAt(index),true); 
    		//list.ensureIndexIsVisible(index);//確保選擇項(xiàng)可以看見 
    		//list.setSelectionForeground(Color.green); 
    		createPlayer2(); 
    	} 

    } 
    
    private void checkMenu(MouseEvent e) 
    { 

    	if(e.isPopupTrigger()) 
    	{ 
    		indexForDel=list.locationToIndex(e.getPoint()); 
    		int[] selected={index,indexForDel}; 
    		//Point p=new Point(e.getX(),e.getY()); 

    		list.setSelectedIndices(selected); 
    		popupMenu.show(list,e.getX(),e.getY()); 

    	} 
    	//list.setSelectedIndex(index); 
    } 

    String reNames() throws ReName//文件該函數(shù) 
    { 
    	String name=JOptionPane.showInputDialog(this,"請輸入新的名字",fileName.elementAt(indexForDel)); 
    	if(name==null||name.equals("")) throw new ReName(); 
    	//必須把name==null放在前面,否則會(huì)發(fā)生NullPointerExceptin,這個(gè)很好理解, 
    	//當(dāng)按了取消后,name會(huì)成為空,那么name.equals("")就會(huì)發(fā)生異常 
    	return name; 
    } 
    class ReName extends Exception//自定義異常來處理文件該名的時(shí)候發(fā)生輸入為空的情形 
    { 
    	
    } 


} 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
粉嫩av亚洲一区二区图片| 天天爽夜夜爽夜夜爽精品视频| 麻豆国产欧美一区二区三区| 91精品国产91热久久久做人人| 亚洲一级二级在线| 欧美图片一区二区三区| 亚洲国产视频一区| 欧美精品123区| 加勒比av一区二区| 久久精品水蜜桃av综合天堂| 成人午夜短视频| 亚洲视频免费在线| 欧美日高清视频| 蜜桃精品在线观看| 中文字幕精品三区| 在线观看一区二区视频| 亚洲成人资源网| 精品乱人伦小说| 不卡欧美aaaaa| 亚洲国产aⅴ成人精品无吗| 日韩一卡二卡三卡国产欧美| 福利一区二区在线| 一区二区成人在线观看| 日韩色视频在线观看| 丁香啪啪综合成人亚洲小说| 亚洲免费大片在线观看| 日韩一级大片在线| 99久久精品久久久久久清纯| 日韩专区中文字幕一区二区| 久久久久久久av麻豆果冻| 91免费看片在线观看| 美国一区二区三区在线播放| 国产精品婷婷午夜在线观看| 欧美美女视频在线观看| 国产精品羞羞答答xxdd| 五月天国产精品| 欧美国产丝袜视频| 欧美一区二区二区| 91色porny| 久久国产婷婷国产香蕉| 一区二区三区高清| 久久久久久久久久看片| 欧美日韩aaa| eeuss鲁片一区二区三区在线观看| 午夜精品久久久| 综合婷婷亚洲小说| 亚洲chinese男男1069| 国产精品美女久久久久久久网站| 欧美日韩久久不卡| 成人av免费观看| 久久99国产精品久久99果冻传媒| 亚洲欧美一区二区三区极速播放| 日韩欧美亚洲另类制服综合在线| 91热门视频在线观看| 国产成人综合在线观看| 视频一区视频二区在线观看| 亚洲少妇中出一区| 欧美国产日本视频| 久久亚洲精精品中文字幕早川悠里 | 久久无码av三级| 91高清视频在线| 不卡的av电影| 国产成人在线影院| 另类综合日韩欧美亚洲| 图片区日韩欧美亚洲| 亚洲综合激情另类小说区| 国产精品视频一二| 国产欧美日韩三级| 久久久欧美精品sm网站| 日韩三级精品电影久久久 | 91日韩精品一区| 成人18视频日本| 国产成人自拍高清视频在线免费播放| 日韩—二三区免费观看av| 午夜视频在线观看一区| 亚洲一区二区欧美日韩 | 国产99一区视频免费| 麻豆国产精品官网| 日本欧美一区二区三区| 天堂成人国产精品一区| 亚洲h在线观看| 亚洲电影激情视频网站| 午夜精品福利一区二区三区蜜桃| 亚洲综合清纯丝袜自拍| 亚洲一区在线观看免费| 亚洲影院在线观看| 日日夜夜精品免费视频| 日本色综合中文字幕| 极品瑜伽女神91| 国产激情一区二区三区| 国产福利一区二区三区视频在线 | 图片区日韩欧美亚洲| 亚洲成人午夜影院| 丝袜美腿亚洲色图| 卡一卡二国产精品| 国产精品一级片| 99久久综合狠狠综合久久| 91久久精品网| 欧美精品国产精品| 久久九九久精品国产免费直播| 日本一区二区视频在线| 自拍偷拍国产亚洲| 亚洲国产欧美日韩另类综合| 人人爽香蕉精品| 国产在线观看一区二区| 成人午夜短视频| 欧美亚洲高清一区| 欧美刺激午夜性久久久久久久| 国产婷婷色一区二区三区四区| 国产精品久久久久久久久久免费看 | 亚洲人成网站精品片在线观看 | 欧美韩日一区二区三区| 亚洲人成亚洲人成在线观看图片| 亚洲国产日韩在线一区模特| 麻豆91精品91久久久的内涵| av电影在线不卡| 欧美巨大另类极品videosbest | 国产成人精品aa毛片| 色吊一区二区三区| 欧美一级片免费看| 国产精品素人一区二区| 亚洲地区一二三色| 国产成人丝袜美腿| 欧美日韩高清一区| 日本一区二区视频在线| 日韩精品免费专区| 91丝袜美腿高跟国产极品老师 | 精品sm在线观看| 玉足女爽爽91| 国产麻豆91精品| 在线观看视频91| 国产日韩影视精品| 亚洲不卡在线观看| 99久久国产综合精品色伊| 日韩视频在线你懂得| 亚洲免费观看视频| 国产在线观看一区二区| 精品视频色一区| 综合在线观看色| 国产福利91精品一区二区三区| 69堂精品视频| 一区二区三区加勒比av| 成人黄色国产精品网站大全在线免费观看| 欧美精品色一区二区三区| 亚洲视频在线一区观看| 国产成人精品三级| 日韩欧美国产一区二区三区| 亚洲一区二区成人在线观看| a美女胸又www黄视频久久| 久久精品一级爱片| 经典三级视频一区| 日韩欧美一级精品久久| 五月婷婷激情综合| 欧美性受xxxx| 亚洲精品国产无套在线观 | 色婷婷久久一区二区三区麻豆| 国产欧美一区二区精品性色超碰| 日韩高清不卡一区二区三区| 欧美私模裸体表演在线观看| 亚洲婷婷综合久久一本伊一区 | 亚洲欧洲美洲综合色网| 粉嫩嫩av羞羞动漫久久久| 久久香蕉国产线看观看99| 青草国产精品久久久久久| 欧美日韩一区中文字幕| 亚洲一区在线观看免费| 色婷婷综合久久| 亚洲乱码国产乱码精品精小说| 成人性视频网站| 国产精品免费人成网站| 成人亚洲一区二区一| 国产精品亲子乱子伦xxxx裸| 丁香五精品蜜臀久久久久99网站 | 不卡一区二区中文字幕| 国产精品视频麻豆| av电影天堂一区二区在线观看| 国产精品乱码一区二区三区软件 | 欧美一区午夜精品| 日本va欧美va瓶| 欧美成va人片在线观看| 精品一区二区免费| 国产日产欧美精品一区二区三区| 国产成人精品影院| 亚洲青青青在线视频| 欧美日韩精品福利| 蜜臀av一区二区在线免费观看 | 91福利国产精品| 午夜亚洲国产au精品一区二区| 欧美乱妇20p| 久久av资源站| 国产拍欧美日韩视频二区| 不卡一区在线观看| 亚洲一区二区精品视频| 91精品久久久久久久99蜜桃| 麻豆精品在线观看| 国产精品污www在线观看| 欧美性xxxxxx少妇| 久久精品72免费观看| 国产精品久久毛片a| 欧美日韩在线精品一区二区三区激情|