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

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

?? vaplay.java

?? JAVA語(yǔ)言寫(xiě)的可實(shí)現(xiàn)局域網(wǎng)內(nèi)視頻聊天程序
?? JAVA
字號(hào):
/***************************************************
*  程序文件名稱: VAplay.java
*  功能:處理視頻圖像捕獲和音頻播放
***************************************************/
import java.awt.*;
import java.awt.image.*;
import java.awt.event.*;
import java.util.*;
import java.io.*;
import java.net.*;
import javax.imageio.*;
import javax.swing.*;
import javax.media.*;
import javax.media.protocol.*;
import javax.media.control.*;
import javax.media.util.*;
import javax.media.format.*;
import com.sun.image.codec.jpeg.*;

class VAplay extends JFrame implements Runnable
{
 //定義視頻圖像播放器
 private static Player player = null;
 //定義音頻播放器
 private static Player player2 = null;
 //獲取視頻設(shè)備
 private CaptureDeviceInfo device = null;
 //獲取音頻設(shè)備
 private CaptureDeviceInfo device2 = null;
 //媒體定位器
 private MediaLocator locator = null;
 private Image image;
 private Buffer buffer = null;
 private BufferToImage b2i = null;
 //設(shè)置攝像頭驅(qū)動(dòng)類型
 String str = "vfw:Microsoft WDM Image Capture (Win32):0";
 //定義播放組件變量
 Component comV,comVC,comA;
  //定義面板	
 JPanel p1,p2,p3,p4;
 JLabel label=new JLabel("對(duì)方IP:");
 //初始時(shí),在接收?qǐng)D像窗口顯示一幅靜態(tài)圖片
 JLabel label2=new JLabel(new ImageIcon("image//load.gif"));
 //定義二個(gè)線程,用于接收數(shù)據(jù)和發(fā)送數(shù)據(jù)
 Thread thread1,thread2;
 
 VAplay()
  {
    super("★視頻傳輸★");
  	setBounds(150,100,500,500);
  	p1=new JPanel(new GridLayout(1,2));
  	p2=new JPanel(new GridLayout(2,1));
  	p3=new JPanel(new BorderLayout());
  	p4=new JPanel(new BorderLayout());
  	//加載文本數(shù)據(jù)傳輸類
  	p1.add(new TxtChat());
  	p1.add(p2);
  	p2.add(p3);
  	p2.add(p4);
  	p3.add("North",new JLabel("Java視頻圖像傳輸"));
  	p3.add(label2,"Center");
  	add(label,"North");
  	add(p1,"Center");
    try 
    	{
             //在本地播放視頻
      		jbInit();
             //在本地播放音頻
      		speaker();
    	}
    catch(Exception e) 
    	{
      		e.printStackTrace();
    	}
    thread1=new Thread(this);
    thread2=new Thread(this);
	//負(fù)責(zé)接收對(duì)方數(shù)據(jù)
	thread1.start();
	//負(fù)責(zé)向?qū)Ψ桨l(fā)送數(shù)據(jù)
	thread2.start();
		
    addWindowListener(new WindowAdapter()
    {
     public void windowClosing(WindowEvent e)
    	{
    		System.exit(0);
    	}
    });
    setVisible(true);
    validate();
  }
  	
 //在本地播放視頻
 private void jbInit() throws Exception 
 {    	
  //初始化設(shè)備,str為設(shè)備驅(qū)動(dòng)
  device = CaptureDeviceManager.getDevice(str);
  //確定所需的協(xié)議和媒體資源的位置
  locator = device.getLocator();
  try 
   {
    //調(diào)用sethint后Manager會(huì)盡力用一個(gè)能和輕量級(jí)組件混合使用的Renderer來(lái)創(chuàng)建播放器
    Manager.setHint(Manager.LIGHTWEIGHT_RENDERER,new Boolean(true));
    //通過(guò)管理器創(chuàng)建播放線程使player達(dá)到Realized狀態(tài)
    player = Manager.createRealizedPlayer(locator);
    player.start();

    if((comV = player.getVisualComponent()) != null) 
      //player.getVisualComponent()是一個(gè)播放視頻媒體組件。
      {
      	p4.add(comV,"Center");
      }
    if((comVC=player.getControlPanelComponent())!=null)
      //player.getControlPanelComponent()是顯示時(shí)間的組件
      {
      	p4.add(comVC,"South");
      }
   }
  catch (Exception e) 
   {
     e.printStackTrace();
   }
  setBounds(200,100,600, 550);
  setVisible(true);
  int new_w= p4.getWidth(); //輸出的圖像寬度
  int new_h= p4.getHeight(); //輸出的圖像高度
  //MediaTracker類跟蹤一個(gè)Image對(duì)象的裝載,完成圖像加載
  MediaTracker mt = new MediaTracker(this.p4);
  try 
   {
   	mt.addImage(image, 0);//裝載圖像
	mt.waitForID(0);//等待圖像全部裝載
   }
  catch (Exception e) 
   {
     e.printStackTrace();
   }
  //將圖像信息寫(xiě)入緩沖區(qū)
  BufferedImage buffImg = new BufferedImage(new_w, new_h,BufferedImage.TYPE_INT_RGB);
  Graphics g = buffImg.createGraphics();
  g.drawImage(image, 0, 0, new_w, new_h, this.p4);
  g.dispose();
 }
    
 //在本地播放音頻
 private void speaker() throws Exception
 {
  Vector deviceList = CaptureDeviceManager.getDeviceList(new 
      AudioFormat(AudioFormat.LINEAR,44100,16,2));
  if(deviceList.size()>0)
    {
     device2 = (CaptureDeviceInfo)deviceList.firstElement();
    }
  else
    {
     System.out.println("找不到音頻設(shè)備!");
    }
  try
   	{
     player2 = Manager.createRealizedPlayer(device2.getLocator());
     player2.start();
     if((comA = player2.getControlPanelComponent())!=null)
      {
    	p3.add(comA,"South");
      }
    }
  catch(Exception e)
    {
    	e.printStackTrace();
    }
 }
    
 //線程,接收或發(fā)送視頻圖像數(shù)據(jù)
 public void run()
 {	
  DatagramPacket pack=null;
  DatagramSocket maildata=null;
  byte data[]=new byte[320*240];
  try
   {
	//定義數(shù)據(jù)包
	pack=new DatagramPacket(data,data.length);
	//定義數(shù)據(jù)報(bào)接收包
	maildata=new DatagramSocket(5555);
   }
  catch(Exception e){  }
  while(true)
   {
  	if(Thread.currentThread()==thread1)
	 {
	  if(maildata==null)
		{
		 break;
		}
	  else
		{
		 try
		  {
		  	//接收
		   maildata.receive(pack);
		   ByteArrayInputStream input=new ByteArrayInputStream(data);
		   Image message=ImageIO.read(input);
		   //在接收?qǐng)D像窗口顯示視頻圖像
		   label2.setIcon(new ImageIcon(message));
		   label.setText("對(duì)方IP:"+pack.getAddress()+
						" 端口:"+pack.getPort());
		  }
		catch(Exception e)
		 {
		   System.out.println("接收?qǐng)D像數(shù)據(jù)失敗!");
		 }
	   }
	 }
	else if(Thread.currentThread()==thread2)
	 {
	  try
	  {
	   //捕獲要在播放窗口顯示的圖象幀
	   FrameGrabbingControl fgc = (FrameGrabbingControl) player.getControl(
       		"javax.media.control.FrameGrabbingControl");
       // 獲取當(dāng)前禎并存入Buffer類
       buffer = fgc.grabFrame(); 
       b2i = new BufferToImage( (VideoFormat) buffer.getFormat());
       image = b2i.createImage(buffer); //轉(zhuǎn)化為圖像
	   //創(chuàng)建image圖像對(duì)象大小的圖像緩沖區(qū)
	   BufferedImage bi = (BufferedImage) createImage(image.getWidth(null),
       image.getHeight(null));
       //根據(jù)BufferedImage對(duì)象創(chuàng)建Graphics2D對(duì)象
       Graphics2D g2 = bi.createGraphics();
       g2.drawImage(image, null, null);
 	   ByteArrayOutputStream output=new ByteArrayOutputStream();
	   //轉(zhuǎn)換成JPEG圖像格式
	   JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder( output );
	   JPEGEncodeParam jpeg = encoder.getDefaultJPEGEncodeParam(bi);
	   jpeg.setQuality(0.5f,false);
	   encoder.setJPEGEncodeParam(jpeg);
  	   encoder.encode(bi);
	   output.close();
	   InetAddress address=InetAddress.getByName("192.168.1.27");
	   DatagramPacket datapack1=new DatagramPacket(output.toByteArray(),output.size(),
					address,5000);
	   DatagramSocket maildata1=new DatagramSocket();
	   maildata1.send(datapack1);
	 //  Thread.sleep(400);
	  }
	 catch(Exception e)
	  {
		System.out.println("視頻發(fā)送失敗!");
	  }
	}
   }
  } 
    
 public static void main(String args[])
  {
	 new VAplay();
  }
}

class TxtChat extends JPanel implements ActionListener,Runnable
{
 JPanel p1,p2,p3,p4;
 JLabel jpic;
 JTextArea txt1,txt2;
 JButton btn1,btn2;
 JScrollPane scroll,scroll2;
 Thread thread;
 boolean boo1=false,boo2=false;
	
 TxtChat()
  {
	setLayout(new BorderLayout());
		
	txt1=new JTextArea();
	txt2=new JTextArea();
	p1=new JPanel(new GridLayout(2,1));
	p2=new JPanel();
	p3=new JPanel(new BorderLayout());
	jpic=new JLabel(new ImageIcon("image//upload.gif"));
	btn1=new JButton("電子文檔");
	btn2=new JButton("發(fā)送信息");
		
	scroll=new JScrollPane(txt1,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
	JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
	scroll2=new JScrollPane(txt2,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
	JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
	p1.add(scroll);
	p1.add(p3);
	p2.add(btn1);
	p2.add(btn2);
	p3.add(jpic,"North");
	p3.add(scroll2,"Center");
		
	add(p1,"Center");
	add(p2,"South");
		
	setVisible(true);
	Font f=new Font("",Font.PLAIN,18);
	txt1.setFont(f);
	txt1.setForeground(Color.red);
	txt2.setFont(f);
	txt2.setForeground(Color.blue);
	btn1.setBackground(Color.cyan);
	btn2.setBackground(Color.yellow);
		
	btn1.addActionListener(this);
	btn2.addActionListener(this);
		
	thread=new Thread(this);
	thread.start();

  }
	
 public void actionPerformed(ActionEvent e)
  {
   if(e.getSource()==btn2)
	{
     byte buffer[]=txt2.getText().trim().getBytes();
	 try
	  {
		InetAddress address=InetAddress.getByName("192.168.1.27");
		DatagramPacket data_pack=new DatagramPacket(buffer,buffer.length,address,6001);
		DatagramSocket mail_data=new DatagramSocket();
		txt1.append("我說(shuō):"+txt2.getText()+'\n');
		mail_data.send(data_pack);
		txt2.setText("");
	  }
	 catch(Exception e1)
	  {
		System.out.println("聊天信息發(fā)送失敗!");
	  }
	}
  }
	
 public void run()
  {
	DatagramPacket pack=null;
	DatagramSocket mail_data=null;
	byte data[]=new byte[8192];
	try
	 {
 	  pack=new DatagramPacket(data,data.length);
	  mail_data=new DatagramSocket(6000);
	 }
	catch(Exception e){  }
	while(true)
 	{
	 if(Thread.currentThread()==thread)
	  {
	   if(mail_data==null)
		{break;}
	   else
		{
		 try
		  {
		   mail_data.receive(pack);
		   int length=pack.getLength();
		   String message=new String(pack.getData(),0,length);
		   txt1.append("某某說(shuō):"+message+'\n');
		  }
		 catch(Exception e)
		  {
			System.out.println("接收數(shù)據(jù)失敗!");
		  }
		 }
	   }
	 }// while end
  }  //run() end
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人精品视频.| 欧美亚洲自拍偷拍| 有坂深雪av一区二区精品| 欧美精选午夜久久久乱码6080| 国产真实精品久久二三区| 亚洲色图20p| 久久香蕉国产线看观看99| 欧美自拍偷拍一区| 不卡视频在线看| 蜜乳av一区二区| 一区二区国产盗摄色噜噜| 欧美激情一区二区在线| 日韩小视频在线观看专区| 色婷婷综合久久久久中文| 国产精品自拍毛片| 美女视频第一区二区三区免费观看网站| 国产精品国产馆在线真实露脸 | 在线免费观看不卡av| 精品一区二区三区免费毛片爱| 亚洲精品你懂的| 欧美激情资源网| 精品91自产拍在线观看一区| 欧美日韩情趣电影| 91毛片在线观看| 欧美视频在线一区二区三区| 91丨porny丨国产| 国产91综合网| 韩国成人在线视频| 久久精品二区亚洲w码| 亚洲va国产天堂va久久en| 亚洲色图.com| 国产精品三级久久久久三级| 久久青草欧美一区二区三区| 欧美www视频| 日韩手机在线导航| 91精品国产一区二区三区| 欧美视频在线观看一区二区| 色综合久久久网| bt欧美亚洲午夜电影天堂| 国产福利一区在线| 国产在线播放一区| 韩国v欧美v日本v亚洲v| 美女视频黄 久久| 视频一区二区三区在线| 亚洲18影院在线观看| 亚洲成av人片在www色猫咪| 亚洲一区二区三区三| 一区二区三区中文字幕精品精品| 亚洲欧洲精品一区二区精品久久久| 国产欧美日韩另类一区| 久久色.com| 久久精品欧美日韩| 国产香蕉久久精品综合网| 欧美激情一区不卡| 中文字幕在线不卡一区| 亚洲精品第1页| 亚洲国产人成综合网站| 亚洲v中文字幕| 轻轻草成人在线| 久久99蜜桃精品| 国产一区二区三区在线观看免费视频 | 播五月开心婷婷综合| eeuss鲁片一区二区三区在线看| av一区二区三区在线| 在线观看中文字幕不卡| 欧美日韩国产区一| 精品国产凹凸成av人网站| 国产精品蜜臀在线观看| 一区二区三区在线免费播放| 日韩av中文字幕一区二区| 开心九九激情九九欧美日韩精美视频电影 | 日韩一区二区中文字幕| 26uuu亚洲综合色| 国产精品国产三级国产| 亚洲成人av电影在线| 另类专区欧美蜜桃臀第一页| 成人毛片老司机大片| 日本丶国产丶欧美色综合| 91精品午夜视频| 久久精品视频免费| 亚洲一区av在线| 久久精品国产精品青草| jlzzjlzz欧美大全| 欧美乱妇20p| 美女性感视频久久| 岛国av在线一区| 欧美日韩视频第一区| 国产午夜精品福利| 亚洲成人资源网| 国产精品正在播放| 欧美亚洲日本一区| 久久久久青草大香线综合精品| 亚洲人成亚洲人成在线观看图片 | 亚洲欧洲av一区二区三区久久| 午夜精品123| 成人免费看视频| 欧美裸体bbwbbwbbw| 中文一区在线播放| 日本中文在线一区| 91麻豆国产精品久久| 26uuu亚洲综合色欧美| 亚洲成人一区二区| 成人av午夜电影| 欧美大片一区二区三区| 一区二区三区四区亚洲| 国产精品69毛片高清亚洲| 欧美精品乱码久久久久久按摩| 欧美高清在线视频| 久久av中文字幕片| 欧美日韩成人综合| 日韩一区欧美一区| 国产一区二区h| 制服丝袜日韩国产| 一区二区三区欧美亚洲| 国v精品久久久网| 精品国产亚洲在线| 青椒成人免费视频| 欧美三级乱人伦电影| 一区二区在线看| 99久久精品99国产精品| 国产三级三级三级精品8ⅰ区| 麻豆91在线看| 91精品国产一区二区三区香蕉| 亚洲国产综合色| 91国偷自产一区二区开放时间 | 欧美精品电影在线播放| 亚洲黄色性网站| 一本大道av一区二区在线播放| 国产精品久久久一本精品| 国产成人精品午夜视频免费| 精品国产乱码久久久久久夜甘婷婷 | 99久久免费视频.com| 欧美国产在线观看| 国产999精品久久| 国产喷白浆一区二区三区| 国产自产视频一区二区三区| 日韩区在线观看| 免费成人美女在线观看| 欧美一区二区在线免费观看| 午夜精品福利一区二区蜜股av| 欧美日韩一卡二卡| 亚洲成年人网站在线观看| 欧美亚洲日本国产| 亚洲高清久久久| 欧美日韩国产电影| 日本网站在线观看一区二区三区| 欧美精品tushy高清| 三级不卡在线观看| 日韩一卡二卡三卡| 久久精品久久综合| 精品久久一区二区| 国产一区福利在线| 国产欧美日韩在线观看| 不卡区在线中文字幕| 亚洲视频免费观看| 欧美三日本三级三级在线播放| 亚洲国产欧美在线| 日韩视频在线一区二区| 国内精品伊人久久久久影院对白| 久久久另类综合| 99久久精品国产观看| 亚洲国产中文字幕在线视频综合| 在线成人小视频| 精品无码三级在线观看视频| 国产日产欧美精品一区二区三区| 99麻豆久久久国产精品免费| 伊人开心综合网| 欧美久久久久中文字幕| 九色|91porny| 国产精品麻豆欧美日韩ww| 色综合天天性综合| 亚洲成人自拍一区| 久久日一线二线三线suv| av在线播放不卡| 亚洲国产人成综合网站| 精品电影一区二区三区 | 日韩片之四级片| 成人午夜av在线| 亚洲一二三四在线| 精品久久久网站| 91视频在线观看免费| 全国精品久久少妇| 国产精品国产三级国产专播品爱网| 91免费观看在线| 精久久久久久久久久久| 亚洲精选在线视频| 精品国偷自产国产一区| 在线精品视频一区二区三四| 韩国欧美国产1区| 亚洲成人免费av| 亚洲国产精品传媒在线观看| 欧美日韩不卡一区| av在线一区二区三区| 日本不卡一区二区三区高清视频| 激情成人午夜视频| 91天堂素人约啪| 午夜精品一区在线观看| 国产人妖乱国产精品人妖| 欧美丰满高潮xxxx喷水动漫| av在线不卡观看免费观看|