六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

怎么捕獲音頻及輸出音頻。

[摘要]這是我原來用過的兩段代碼,輸出音頻和捕獲音頻。 構(gòu)造器里的socket是用來接受來自網(wǎng)絡(luò)的音頻數(shù)據(jù)。不做網(wǎng)絡(luò)音頻可以去掉它。希望能與大家分享經(jīng)驗(yàn)。8-)import java.io.*; impor...
這是我原來用過的兩段代碼,輸出音頻和捕獲音頻。
構(gòu)造器里的socket是用來接受來自網(wǎng)絡(luò)的音頻數(shù)據(jù)。不做網(wǎng)絡(luò)音頻可以去掉它。

希望能與大家分享經(jīng)驗(yàn)。8-)

import java.io.*;
import javax.sound.sampled.*;
import java.net.*;


/**
* Title:VoiceChat
* Description:輸出音頻(放音程序)
* Copyright:Copyright (c) 2001
* Company:
* @author 你猜!
* @version 1.0
*/


class Playback implements Runnable {

 final int bufSize = 16384;
 SourceDataLine line;
 Thread thread;
 Socket s;

 Playback(Socket s){//構(gòu)造器 取得socket以獲得網(wǎng)絡(luò)輸入流
 this.s=s;
 }
 public void start() {

 thread = new Thread(this);
 thread.setName("Playback");
 thread.start();
 }

 public void stop() {
 thread = null;
 }

 public void run() {

 AudioFormat format =new AudioFormat(8000,16,2,true,true);//AudioFormat(float sampleRate, int sampleSizeInBits, int channels, boolean signed, boolean bigEndian)
 BufferedInputStream playbackInputStream;

 try {
 playbackInputStream=new BufferedInputStream(new AudioInputStream(s.getInputStream(),format,2147483647));//封裝成音頻輸出流,如果網(wǎng)絡(luò)流是經(jīng)過壓縮的需在此加套解壓流
 }
 catch (IOException ex) {
 return;
 }

 DataLine.Info info = new DataLine.Info(SourceDataLine.class,format);

 try {
 line = (SourceDataLine) AudioSystem.getLine(info);
 line.open(format, bufSize);
 } catch (LineUnavailableException ex) {
 return;
 }

 byte[] data = new byte[1024];//此處數(shù)組的大小跟實(shí)時(shí)性關(guān)系不大,可根據(jù)情況進(jìn)行調(diào)整
 int numBytesRead = 0;
 line.start();

 while (thread != null) {
try{
 numBytesRead = playbackInputStream.read(data);
 line.write(data, 0,numBytesRead);
} catch (IOException e) {
 break;
 }
 }

 if (thread != null) {
 line.drain();
 }

 line.stop();
 line.close();
 line = null;
 }
}


import java.io.*;
import javax.sound.sampled.*;
import java.net.*;

/**
* Title:VoiceChat
* Description:音頻捕捉(錄音程序)
* Copyright:Copyright (c) 2001
* Company:
* @author 你猜!
* @version 1.0
*/

class Capture implements Runnable {

 TargetDataLine line;
 Thread thread;
 Socket s;
 BufferedOutputStream captrueOutputStream;

 Capture(Socket s){//構(gòu)造器 取得socket以獲得網(wǎng)絡(luò)輸出流
 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());//建立輸出流 此處可以加套壓縮流用來壓縮數(shù)據(jù)
 }
 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可以情況進(jìn)行調(diào)整,應(yīng)跟下面的1024應(yīng)保持一致
 int numBytesRead=0;
 line.start();

 while (thread != null) {
 numBytesRead = line.read(data, 0,1024);//取數(shù)據(jù)(1024)的大小直接關(guān)系到傳輸?shù)乃俣龋话阍叫≡娇欤?
 try {
 captrueOutputStream.write(data, 0, numBytesRead);//寫入網(wǎng)絡(luò)流
 }
 catch (Exception ex) {
 break;
 }
 }

 line.stop();
 line.close();
 line = null;

 try {
 captrueOutputStream.flush();
 captrueOutputStream.close();
 } catch (IOException ex) {
 ex.printStackTrace();
 }
 }



主站蜘蛛池模板: 四川一级护士一级毛片 | 午夜视频高清在线aaa | 亚洲欧美日韩另类在线专区 | 日日夜夜免费精品视频 | 天天做天天操 | 中文字幕亚洲一区 | 亚洲精品老司机福利在线播放 | 四虎影院在线免费观看 | 一级做a爱片久久毛片 | 青青热久久国产久精品 | 日韩欧美精品在线视频 | 四虎国产成人免费观看 | 中国xxxx色视频在线观看 | 午夜视频网 | 亚洲 欧洲 日产 韩国在线 | 日韩在线aⅴ免费视频 | 伊人网在线视频 | 色综合九九 | 中文字幕第二一区 | 日本三级韩国三级香港三级网站 | 亚洲大尺度视频 | 中文在线免费不卡视频 | 日本草草影院 | 晚上正能量91香蕉 | 伊人久久婷婷 | 在线九色| 亚洲伊人久久在 | 亚洲欧美在线视频 | 青草社区在线观看 | 亚洲国产精品成人午夜在线观看 | 色黄大片 | 四虎影视免费永久在线观看黄 | 先锋久久 | 手机看片日韩日韩 | 色综合久久伊人 | 亚洲欧美婷婷 | 三级在线免费观看 | 四虎8848精品永久在线观看 | 色爱区综合激情五月综合激情 | 欧美综合专区 | 小明永久成人一区二区 |