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

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

?? audiopanel.java

?? 圖片播放器
?? JAVA
字號(hào):
package sunstudio.record.au.userinterface;

import java.io.*;
import java.awt.*;
import java.awt.event.*;
import sunstudio.util.*;
import sunstudio.file.*;
import sunstudio.codec.au.*;
import sunstudio.record.au.audio.play.*;
import sunstudio.record.au.audio.capture.*;
import sunstudio.record.au.audio.*;
import sunstudio.mediaload.*;
import sunstudio.userinterface.button.*;
import sunstudio.userinterface.*;

public class AudioPanel extends Panel implements MouseListener,MouseMotionListener,ImgBtnListener,AudioDataListener,ParameterSet,AudioPlayListener{
	
	int						AUDIO_NOSIGNAL=0;						//沒有信號(hào)
	int						AUDIO_PLAYING=1;						//播放模式
	int						AUDIO_RECORD=2;							//錄音模式
	int						AUDIO_PLAY_PAUSE=3;						//放音暫停模式
	int						AUDIO_RECORD_PAUSE=4;					//錄音暫停模式
	Image					bgimg,block;							//背景圖片和播放位置塊
	ImgBtn					btnPlay,btnPause,btnRecord,btnStop,btnUpload;		//控制按鈕
	AudioView				audioview=null;							//音頻波形顯示
	AudioPlayer				player=null;							//CTF格式音頻播放器
	AudioCapture			capture=null;							//音頻采集器
	MediaLoader				ml=null;								//媒體裝載器
	int						workMode=0;								//工作模式
	BufferedOutputStream	fos=null;								//文件寫緩沖流
	BufferedInputStream		fis=null;								//文件讀緩沖流
	InputStream				playstream=null;						//播放數(shù)據(jù)流
	AuReader				rr=new AuReader();						//CTF文件解析器
	AuWriter				ww=new AuWriter();						//CTF文件生成器
	byte[]					audiodata=new byte[800];				//錄音數(shù)據(jù)顯示
	int						r_microsec=0;							//錄音毫秒數(shù)
	int						r_bCount=0;								//錄音寫入字節(jié)數(shù)
	int						p_microsec=0;							//放音總毫秒數(shù)
	int						p_curtime=0;							//當(dāng)前播放毫秒數(shù)
	String filename=System.getProperty("com.ms.windir")+System.getProperty("file.separator")+"temp"+System.getProperty("file.separator")+"1.tmp";
	String filename1=System.getProperty("com.ms.windir")+System.getProperty("file.separator")+"temp"+System.getProperty("file.separator")+"1.au";
	boolean draging=false;
	boolean					hasRecord=false;
	UploadComponent			uploader=new UploadComponent();
	ClockModel				clock=new ClockModel();
				
	public AudioPanel(MediaLoader ml1){
		setLayout(null);
		this.ml=ml1;
		addMouseListener(this);
		addMouseMotionListener(this);
		
		capture=new AudioCapture();
		capture.addAudioDataListener(this);
		if(!capture.open())System.out.println("沒有聲卡或聲卡正在占用!");
		player=new AudioPlayer();
		player.addAudioPlayListener(this);
		
		bgimg=ml.loadImage("bgimg.gif");
		block=ml.loadImage("block.gif");

		audioview=new AudioView(ml.loadWaveFormImage(),ml.loadImage("flag.gif"));
		audioview.setBounds(viewRect.x,viewRect.y,viewRect.width,viewRect.height);
		add(audioview);
		
		btnPlay=new ImgBtn(ml.loadImage("2b.gif"),ml.loadImage("2c.gif"),ml.loadImage("2a.gif"),ml.loadImage("2d.gif"));
		btnPlay.setLocation(playRect.x-29,playRect.y);
		add(btnPlay);
		btnPause=new ImgBtn(ml.loadImage("3b.gif"),ml.loadImage("3c.gif"),ml.loadImage("3a.gif"),ml.loadImage("3d.gif"));
		btnPause.setLocation(pauseRect.x-25,pauseRect.y);
		add(btnPause);
		btnRecord=new ImgBtn(ml.loadImage("4b.gif"),ml.loadImage("4c.gif"),ml.loadImage("4a.gif"),ml.loadImage("4d.gif"));
		btnRecord.setLocation(recordRect.x-21,recordRect.y);
		add(btnRecord);
		btnStop=new ImgBtn(ml.loadImage("6b.gif"),ml.loadImage("6c.gif"),ml.loadImage("6a.gif"),ml.loadImage("6d.gif"));
		btnStop.setLocation(stopRect.x-17,stopRect.y);
		add(btnStop);
		
		btnUpload=new ImgBtn(ml.loadImage("7b.gif"),ml.loadImage("7c.gif"),ml.loadImage("7a.gif"),ml.loadImage("7d.gif"));
		btnUpload.setLocation(uploadRect.x-13,uploadRect.y);
		add(btnUpload);
				  
		btnStop.setEnabled(false);
		btnPause.setEnabled(false);
		btnUpload.setEnabled(false);
		
		btnRecord.addImgBtnListener(this);
		btnPlay.addImgBtnListener(this);
		btnPause.addImgBtnListener(this);
		btnStop.addImgBtnListener(this);
		btnUpload.addImgBtnListener(this);
	}
	public void paint(Graphics g){
		g.drawImage(bgimg,0,0,this);
		g.drawImage(block,pb.x,blockRect.y,this);
	}
	public void update(Graphics g){paint(g);}
	void resetRecordParameter(){
		r_bCount=0;
		r_microsec=0;
		clock.clear();
		ww.writeBegin("陽光工作室(SunStudio)制作");
	}
	public void close(){
		try{
			capture.close();
			System.out.println("聲音俘獲正常關(guān)閉");
		}catch(Exception e){e.printStackTrace();}	
		try{
			player.stop_play();
			player.close();
			System.out.println("聲音播放正常關(guān)閉");
		}catch(Exception e){}
	}
	void resetPlayParameter(){
		p_curtime=0;
		p_microsec=0;
		clock.clear();
	}
	boolean isPlaying(){
		return workMode==AUDIO_PLAYING;
	}
	boolean isRecording(){
		return workMode==AUDIO_RECORD;
	}
	boolean isPlayPause(){
		return workMode==AUDIO_PLAY_PAUSE;
	}
	boolean isRecordPause(){
		return workMode==AUDIO_RECORD_PAUSE;
	}
	boolean isNoSignal(){
		return workMode==AUDIO_NOSIGNAL;
	}
	public void actionPerformed(ImgBtnEvent evt){
		if(evt.getSource().equals(btnRecord)){
			if(isNoSignal()){
				try{
					if(fos!=null){
						fos.close();
						fos=null;
					}
					fos=new BufferedOutputStream(new FileOutputStream(filename));
					resetRecordParameter();
					capture.start_record();
					workMode=AUDIO_RECORD;
					btnRecord.setEnabled(false);
					btnStop.setEnabled(true);
					btnPause.setEnabled(true);
					btnPlay.setEnabled(false);
					btnUpload.setEnabled(false);
				}catch(Exception e){e.printStackTrace();}
			}
		}else if(evt.getSource().equals(btnPlay)){
			if(isNoSignal()){
				try{
					try{
						if(fis!=null){
							fis.close();
							fis=null;
						}
					}catch(Exception e){e.printStackTrace();}
					try{
						if(playstream!=null)playstream=null;
						fis=new BufferedInputStream(new FileInputStream(filename1));
						rr.readHeader(fis);
						rr.outputHeaderInfoTo(System.out);
						resetPlayParameter();
						p_microsec=rr.getMicroSeconds();
						playstream=fis;
					}catch(Exception e){e.printStackTrace();}
					player.start_play(playstream);
					workMode=AUDIO_PLAYING;
					btnPlay.setEnabled(false);
					btnRecord.setEnabled(false);
					btnStop.setEnabled(true);
					btnPause.setEnabled(true);
					btnUpload.setEnabled(false);
				}catch(Exception e){e.printStackTrace();}
			}
		}else if(evt.getSource().equals(btnPause)){
			if(isPlaying()){
				player.suspend_play();
				this.workMode=this.AUDIO_PLAY_PAUSE;
				return;
			}			
			if(isPlayPause()){
				player.resume_play();
				this.workMode=this.AUDIO_PLAYING;
				return;
			}
			if(isRecording()){
				capture.suspend_record();
				workMode=AUDIO_RECORD_PAUSE;
				return;
			}
			if(isRecordPause()){
				capture.resume_record();
				workMode=AUDIO_RECORD;
				return;
			}
		}else if(evt.getSource().equals(btnStop)){
			if(isRecording()||isRecordPause()){
				capture.stop_record();
				try{
					ww.writeOver();
					fos.close();
					fos=null;
				}catch(Exception e){}
				try{
					FileOutputStream writer=new FileOutputStream(filename1);
					FileInputStream reader=new FileInputStream(filename);
					ww.writeHeaderTo(writer);
					byte[] content=new byte[reader.available()];
					reader.read(content);
					writer.write(content);
					writer.close();
					reader.close();
					hasRecord=true;
				}catch(Exception e){}
			}else if(isPlaying()||isPlayPause()){
				player.stop_play();
				try{
					fis.close();
					fis=null;
				}catch(Exception e){}
			}
			workMode=AUDIO_NOSIGNAL;
			btnPlay.setEnabled(true);
			btnRecord.setEnabled(true);
			btnPause.setEnabled(false);
			btnStop.setEnabled(false);
			if(hasRecord)btnUpload.setEnabled(true);
		}else if(evt.getSource().equals(btnUpload)){
		/*	if(hasRecord&&isNoSignal()){
				try{
					if(fis!=null){
						fis.close();
						fis=null;
					}
					fis=new BufferedInputStream(new FileInputStream(filename1));
					//上傳語音文件
					uploader.upload2Page(fis,fis.available(),"mis1",80,ml.getParameter("uploadto"));
				}catch(Exception e){e.printStackTrace();}
			}*/
		}
	}
	public void onBtnMouseEnter(ImgBtnEvent evt){}
	public void onBtnMouseExit(ImgBtnEvent evt){}
	
	public void onAudioPlayEvent(AudioPlayEvent evt){
		try{
			if(evt.isPlayOver()){
				btnRecord.setEnabled(true);
				btnPlay.setEnabled(true);
				btnPause.setEnabled(false);
				btnStop.setEnabled(false);
				player.stop_play();
				if(hasRecord)btnUpload.setEnabled(true);
				workMode=AUDIO_NOSIGNAL;
			}else if(evt.isPlayData()){							//波形顯示
				p_curtime+=50;
				clock.addMicroSeconds(50);
				if(p_curtime%200==0){
					if(!draging){
						int x=Math.min(Math.max(0,(int)(((double)p_curtime/(double)p_microsec)*190D)),228-blockRect.x);
						pb.move(blockRect.x+x,pb.y);
						repaint();
					}
				}
				audioview.setView(evt.getWaveData(),"當(dāng)前播放:["+clock.getTime()+"]");
			}else if(evt.isPlayErr()){
				btnRecord.setEnabled(true);
				btnPlay.setEnabled(true);
				btnPause.setEnabled(false);
				btnStop.setEnabled(false);
				workMode=AUDIO_NOSIGNAL;
				player.stop_play();
				System.out.println("occur an error when playing!");
			}
		}catch(Exception e){}
	}
	public void onAudioDataArrived(AudioDataEvent evt){
		try{
			if(isNoSignal())return;
			int min=evt.getAudioMinValue();
			r_microsec+=100;
			clock.addMicroSeconds(100);
			if(min!=0){
				AuEncoder.encode(evt.getAudioData(),audiodata);
				//System.out.println("src length="+audiodata.length+",after compress="+Compress.compress(audiodata).length);
				fos.write(audiodata);
				ww.addSample();
				audioview.setView(audiodata,"當(dāng)前錄制:["+clock.getTime()+"]");
			}audioview.setView(audiodata,"當(dāng)前錄制:["+clock.getTime()+"]");
		}catch(Exception e){e.printStackTrace();}
	}
    public void mouseClicked(MouseEvent e){}
    public void mousePressed(MouseEvent e){
		if(!isPlaying())return;
		if(pb.contains(e.getX(),e.getY()))draging=true;
		else if(track.contains(e.getX(),e.getY())){
			int x=Math.min(Math.max(blockRect.x,e.getX()),228);
			pb.move(x,pb.y);
			repaint();
		}
	}
	void GotoPlay(int goid){
		int microid=goid;
		microid=(int)Math.floor((double)goid/50D)*50;
		player.stop_play();
		try{
			fis.close();
			fis=null;
		}catch(Exception e){}
		try{
			try{
				if(playstream!=null)playstream=null;
				fis=new BufferedInputStream(new FileInputStream(filename1));
				rr.readHeader(fis);
				resetPlayParameter();
				this.p_curtime=microid;
				this.p_microsec=rr.getMicroSeconds();
				clock.addMicroSeconds(p_curtime);
				fis.skip(microid*8);
				playstream=fis;
			}catch(Exception e){e.printStackTrace();}
			player.start_play(playstream);
			workMode=AUDIO_PLAYING;
		}catch(Exception e){e.printStackTrace();}
	}
    public void mouseReleased(MouseEvent e){
		draging=false;
		if(track.contains(e.getX(),e.getY())&&isPlaying()){
			btnStop.setEnabled(false);
			btnPause.setEnabled(false);
			int x=Math.min(Math.max(blockRect.x,e.getX()),228);
			pb.move(x,pb.y);
			repaint();
			btnStop.setEnabled(true);
			btnPause.setEnabled(true);
			GotoPlay((int)((double)p_microsec*((double)(x-blockRect.x)/190D)));
		}
	}
    public void mouseEntered(MouseEvent e){}
	public void mouseExited(MouseEvent e){}	
    public void mouseMoved(MouseEvent e){}
	public void mouseDragged(MouseEvent e){
		if(draging){
			pb.move(Math.min(Math.max(blockRect.x,e.getX()),228),pb.y);
			repaint();
		}
	}
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产99久久久国产精品潘金| 亚洲视频1区2区| 国产 欧美在线| 一二三区精品视频| 国产日韩av一区| 欧美一区二区三区影视| 丁香激情综合国产| 蜜臀久久久99精品久久久久久| 日韩毛片精品高清免费| 欧美精品一区二区三区久久久| 日本高清不卡一区| 国产东北露脸精品视频| 蜜臀av性久久久久蜜臀av麻豆| 有坂深雪av一区二区精品| 久久久精品国产免费观看同学| 884aa四虎影成人精品一区| 成人高清视频免费观看| 91精品国产综合久久福利软件| 国产成人精品1024| 午夜精品久久久久久久蜜桃app| 久久精品夜色噜噜亚洲a∨| 在线综合亚洲欧美在线视频| 97久久精品人人做人人爽50路| 久久99国产乱子伦精品免费| 午夜视频在线观看一区二区| 亚洲欧美色图小说| 中文字幕一区日韩精品欧美| 久久久99免费| 久久综合精品国产一区二区三区 | 色综合视频一区二区三区高清| 久久99久久久欧美国产| 视频一区二区不卡| 视频一区二区三区中文字幕| 亚洲第一二三四区| 午夜不卡在线视频| 偷拍日韩校园综合在线| 亚洲成人一区在线| 不卡视频一二三| 亚洲综合在线免费观看| 亚洲天堂福利av| 日韩码欧中文字| 亚洲免费伊人电影| 亚洲小少妇裸体bbw| 亚洲国产成人porn| 亚洲国产视频在线| 婷婷国产在线综合| 蜜桃视频免费观看一区| 捆绑调教一区二区三区| 国产制服丝袜一区| 国产高清成人在线| 99re66热这里只有精品3直播| 99久久精品国产麻豆演员表| 一本大道av伊人久久综合| 91黄色小视频| 91精品国产综合久久香蕉的特点| 91麻豆精品国产91久久久使用方法| 欧美日韩和欧美的一区二区| 91精品国产综合久久精品| 精品剧情v国产在线观看在线| 精品国产电影一区二区| 国产亚洲一本大道中文在线| 国产精品美女久久福利网站 | 免费高清在线一区| 国模套图日韩精品一区二区| 粉嫩av一区二区三区在线播放| 波多野结衣中文字幕一区| 91高清在线观看| 欧美一区二区三区不卡| 国产亚洲欧美中文| 亚洲最大成人综合| 黄色成人免费在线| 91美女在线视频| 欧美一级日韩不卡播放免费| 国产清纯美女被跳蛋高潮一区二区久久w| 国产精品色噜噜| 亚州成人在线电影| 国产成人在线看| 欧美体内she精视频| 精品国产91乱码一区二区三区 | 亚洲欧美色图小说| 天堂一区二区在线| 成人午夜伦理影院| 69精品人人人人| 中文欧美字幕免费| 丝袜诱惑亚洲看片| 99久久综合狠狠综合久久| 欧美顶级少妇做爰| 中文字幕乱码一区二区免费| 丝瓜av网站精品一区二区| 国产美女久久久久| 欧美日韩电影在线播放| 中文字幕免费不卡| 久久精品国产一区二区三区免费看 | 91搞黄在线观看| 精品sm捆绑视频| 亚洲一卡二卡三卡四卡| 国产福利视频一区二区三区| 欧美喷水一区二区| 一区免费观看视频| 国产精品99久久久| 日韩欧美卡一卡二| 亚洲成人自拍网| 欧美日韩一区二区三区不卡| 精品三级av在线| 亚洲v精品v日韩v欧美v专区| 国产suv精品一区二区883| 欧美一级久久久| 亚洲狠狠爱一区二区三区| 成人精品视频网站| 久久久久久久久久美女| 美女视频免费一区| 666欧美在线视频| 一区二区免费看| av一二三不卡影片| 国产女主播一区| 国产在线麻豆精品观看| 欧美一级欧美一级在线播放| 一区二区三区产品免费精品久久75| 国产精品88888| 精品乱人伦一区二区三区| 亚洲va欧美va人人爽午夜| 在线亚洲+欧美+日本专区| 1区2区3区精品视频| 成人免费黄色在线| 欧美国产激情一区二区三区蜜月| 老司机免费视频一区二区| 日韩一区二区电影| 青青草国产成人99久久| 欧美一区二区国产| 裸体在线国模精品偷拍| 欧美第一区第二区| 久久99精品久久久久久久久久久久 | 亚洲国产精品久久久男人的天堂| 色系网站成人免费| 亚洲欧洲av色图| 99国产精品一区| 亚洲欧美偷拍卡通变态| 日本黄色一区二区| 亚洲影院免费观看| 欧美高清www午色夜在线视频| 亚洲第一久久影院| 欧美巨大另类极品videosbest | 国产精品美女久久久久av爽李琼 | 中文字幕在线观看不卡| 9色porny自拍视频一区二区| 综合欧美亚洲日本| 欧美午夜一区二区三区免费大片| 亚洲高清免费在线| 日韩美一区二区三区| 国内成+人亚洲+欧美+综合在线| 久久色在线视频| 成人免费毛片嘿嘿连载视频| 国产精品美女久久久久久久| 日本韩国欧美三级| 日日骚欧美日韩| 久久综合资源网| 97国产一区二区| 亚洲成人av资源| 精品久久人人做人人爰| 国产精品一区二区三区乱码 | 国产在线国偷精品免费看| 国产网站一区二区三区| 一本到不卡精品视频在线观看 | 国模一区二区三区白浆| 国产精品卡一卡二| 欧美日韩国产在线播放网站| 久久精品国产成人一区二区三区| 国产日韩高清在线| 欧美专区日韩专区| 蜜桃一区二区三区在线| 国产精品日韩精品欧美在线| 欧美四级电影在线观看| 精品一区二区影视| 亚洲天堂av老司机| 日韩女优制服丝袜电影| 不卡一区二区中文字幕| 五月婷婷综合激情| 中文欧美字幕免费| 欧美精品99久久久**| 成人在线一区二区三区| 午夜精品免费在线| 亚洲国产精品av| 91精品国产综合久久精品图片| 国产91高潮流白浆在线麻豆| 午夜精品久久久久影视| 国产精品情趣视频| 日韩一级免费观看| 99re这里只有精品6| 激情六月婷婷久久| 亚洲高清一区二区三区| 中文一区一区三区高中清不卡| 69堂精品视频| 99re热视频精品| 国产毛片精品视频| 日本美女一区二区三区视频| 国产精品亲子乱子伦xxxx裸| 日韩一级完整毛片| 精品视频一区三区九区| 不卡av在线网| 国产精选一区二区三区 |