⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 capture.java

📁 P2P聊天系统 该程序是由NetBeans IDE 6.5
💻 JAVA
字号:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package voice;/** * * @author Administrator *///音频捕获部分,//Capture.javaimport java.io.*;import javax.sound.sampled.*;import java.net.*;public class Capture implements Runnable {       TargetDataLine line;       Thread thread;       Socket s;       BufferedOutputStream captrueOutputStream;       public Capture(Socket s){//构造器 取得socket以获得网络输出流         this.s=s;       }       public void start() {           thread = new Thread(this);           thread.setName("Capture");           thread.start();       }       public void stop() {           thread = null;       }       public void run() {           try {             captrueOutputStream=new BufferedOutputStream(s.getOutputStream());//建立输出流 此处可以加套压缩流用来压缩数据           }           catch (IOException ex) {               return;           }           AudioFormat format =new AudioFormat(8000,16,2,true,true);//AudioFormat(float sampleRate, int sampleSizeInBits, int channels, boolean signed, boolean bigEndian)           DataLine.Info info = new DataLine.Info(TargetDataLine.class,format);           try {               line = (TargetDataLine) AudioSystem.getLine(info);               line.open(format, line.getBufferSize());           } catch (Exception ex) {               return;           }           byte[] data = new byte[1024];//此处的1024可以情况进行调整,应跟下面的1024应保持一致           int numBytesRead=0;           line.start();           while (thread != null) {               numBytesRead = line.read(data, 0,128);//取数据(1024)的大小直接关系到传输的速度,一般越小越快,               try {                 captrueOutputStream.write(data, 0, numBytesRead);//写入网络流               }               catch (Exception ex) {                   break;               }           }           line.stop();           line.close();           line = null;           try {               //captrueOutputStream.flush();               captrueOutputStream.close();           } catch (IOException ex) {               ex.printStackTrace();           }       }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -