- 浏览: 167546 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (157)
- j2se (6)
- 网络安全 (11)
- java (28)
- spring (0)
- Struts2 (2)
- hibernate (1)
- Dwr (0)
- ajax (3)
- flash (0)
- 文学&&小说 (1)
- 火车头 (1)
- 小软件 (13)
- 数据挖掘 (1)
- 搜索 (4)
- Java开源项目 (9)
- javaweb 服务器 (0)
- 经典教程 (12)
- php (1)
- web roller (4)
- Lucene (1)
- 普索网 (1)
- Javascript (2)
- 普索网【Vim】 (0)
- Ftp (0)
- log4j (1)
- j2se【pusuo】 (1)
- fdsfdsfsadfasfsa (0)
- b (0)
- c (0)
- f (0)
- cc (0)
- ddd (1)
最新评论
//Playback.java
package com.softfz;
//下面是音频输出的代码:
import java.io.*;
import javax.sound.sampled.*;
import java.net.*;
/**
* Title: VoiceChat
* Description: 输出音频(放音程序)
* Copyright: Copyright (c) 2001
*/
class Playback implements Runnable {
final int bufSize = 16384;
SourceDataLine line;
Thread thread;
Socket s;
Playback(Socket s){//构造器 取得socket以获得网络输入流
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));//封装成音频输出流,如果网络流是经过压缩的需在此加套解压流
}
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];//此处数组的大小跟实时性关系不大,可根据情况进行调整
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;
}
}
//Capture.java
package com.softfz;
//音频捕获部分,
import java.io.*;
import javax.sound.sampled.*;
import java.net.*;
/**
* Title: VoiceChat
* Description: 音频捕捉(录音程序)
* Copyright: Copyright (c) 2001
*/
class Capture implements Runnable {
TargetDataLine line;
Thread thread;
Socket s;
BufferedOutputStream captrueOutputStream;
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();
}
}
}
package com.softfz;
//下面是音频输出的代码:
import java.io.*;
import javax.sound.sampled.*;
import java.net.*;
/**
* Title: VoiceChat
* Description: 输出音频(放音程序)
* Copyright: Copyright (c) 2001
*/
class Playback implements Runnable {
final int bufSize = 16384;
SourceDataLine line;
Thread thread;
Socket s;
Playback(Socket s){//构造器 取得socket以获得网络输入流
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));//封装成音频输出流,如果网络流是经过压缩的需在此加套解压流
}
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];//此处数组的大小跟实时性关系不大,可根据情况进行调整
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;
}
}
//Capture.java
package com.softfz;
//音频捕获部分,
import java.io.*;
import javax.sound.sampled.*;
import java.net.*;
/**
* Title: VoiceChat
* Description: 音频捕捉(录音程序)
* Copyright: Copyright (c) 2001
*/
class Capture implements Runnable {
TargetDataLine line;
Thread thread;
Socket s;
BufferedOutputStream captrueOutputStream;
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();
}
}
}
发表评论
-
Skype4Java开发文档以及示例代码
2010-03-02 22:38 855Skype4Java开发文档以及示例代码Skype4Java开 ... -
java 版的SSL
2010-03-02 21:58 732java 版的Sjava 版的SSLSLjava 版的SSL ... -
My97DatePicker时间控件
2010-02-04 09:36 1095My97DatePicker时间控件 -
Java硬盘目录的实现
2010-02-04 00:20 816Java硬盘目录的实现 -
单点登陆
2010-01-23 16:46 1070单点登录(SSO)的技术被越来越广泛地运用到各个领域的软件系统 ... -
Linux下常用压缩格式的压缩与解压方法
2009-12-23 01:08 710Linux下常用压缩格式的压缩与解压方法 日期:2005-01 ... -
BlackBerry开发指南、
2009-12-22 22:33 924BlackBerry开发指南BlackBerry开发指南 -
JavaScript网页设计300例
2009-12-11 09:35 932JavaScript网页设计300例JavaScript网页设 ... -
javascript 常用代码
2009-11-18 09:56 7711、后退 前进 <input type=" ... -
javascript可以获得mac地址
2009-11-05 17:36 1937javascript可以获得mac地址【普索】http://w ... -
计算机超级中心
2009-10-22 11:37 709http://www.sccas.cn/gb/index.ht ... -
JAVA媒体播放器源代码.rar
2009-10-08 23:13 4598JAVA媒体播放器源代码.rarJAVA媒体播放器源代码.ra ... -
proxool-0.9.1-source.zip
2009-10-03 14:27 737proxool-0.9.1-source.ziphttp:// ... -
java 开源chat
2009-10-01 15:24 751java 开源chathttp://www.pusuo.net ... -
JavaMai教程JavaMai教程
2009-09-30 20:07 712JavaMai教程JavaMai教程http://www.pu ... -
在线学习管理系统源码
2009-09-28 22:58 2099在线学习管理系统源码在线学习管理系统源码 -
java 进销存java 进销存java 进销存
2009-09-28 00:22 1574java 进销存java 进销存java 进销存 -
俄罗斯方块(带设计文档)
2009-09-28 00:10 965俄罗斯方块(带设计文档).】俄罗斯方块(带设计文档) -
显示work,excel 文档
2009-09-06 22:25 1597这些说起来是入门级的东西,但没有几个人真的知道. 要输出一个e ... -
遗传算法遗传算法
2009-09-01 02:09 863遗传算法遗传算法遗传算法遗传算法
相关推荐
3 Java类和对象、属性和方法 4 Java构造方法 5 Java包等 无论您是在校大学生,还是职业学员,或者其他开发人员,本书都志在全面提高您的Java编程思想和开发实力,使您能够系统的学习Java语言,写出高质量的Java程序...
java 服务器处理使用ffmpeg处理视频工具类,使用前先按照ffmpeg,并将其安装目录的bin路径加入环境变量,目前主要实现压缩,转码,增加字幕(可设定字体及位置),获取视频时长及源数据信息等功能,也可再此基础上...
java上传视频转码播放的一个demo,实现java上传视频、转码、截图和播放功能
java视频转换工具类,可将视频任意转换为mp4、ogg、flv等多种格式
java视频教程 Java文件操作 JavaFile
类文件叫做RecordServlet.java。 运行步骤: 1 设置odbc数据源,利用附件提供的数据库,数据源名称为:record 在FlashMediaServer创建application名为“example”。 2 在MyEclipse下运行附件所带的Java源文件,web...
ffmpeg java 封装工具类,音视频处理
视频文件 商城系统,购物车,分类,购买,Java商城系统 视频 商城类
Abstract类实现接口 马克-to-win java视频 implement
通过javacv加载字幕文件,然后跟视频合并。首先使用FFmpegFrameGrabber类加载视频文件和字幕文件。然后创建一个FFmpegFrameRecorder对象来将它们合并成一个视频文件。最后,通过循环读取视频和字幕的帧,并将它们...
本Java视频教程适合有一定编程语言基础的学员观看,在本Java视频教程中讲解了Java面向对象、异常、数组、常用类、集合、IO流、线程、反射机制。该视频教程基于Java13进行讲解,Java13是目前Java最新版本。视频中讲师...
ffmpeg的调用工具,获取视频信息,帧(封面图片)。代码已封装好,注释相信,直接调用
java实现视频上传,前端用webuploader分片,后台合文件并用ffmpeg进行压缩处理。
在线视频视频点播系统,希望能对大家有帮助
上传下载工具类java,主要是用来进行上传下载的操作的工具类
这是一个java利用ffmpeg获取视频缩略图的java工程,里面有什么都有了,你只需要导入你的myeclpise,然后运行,看效果就是了,总共就一个类,二十多行代码
京东云视频直播视频录播Java示例代码。截取指定时间小视频。可以结合定时任务使用。详细介绍:https://www.yuque.com/docs/share/e33959e3-0c8f-4b74-b2b4-78533e370400?# 《京东云推流直播录播》
类和对象的核心概念new1---马克-to-win java视频 马克Java社区 马克towin
java ffmpeg实现视屏剪辑、srt字幕嵌入、视频合成、图片转视频 通过test类运行。demo基于jave的源码。对ffmpeg的两种系统下的执行文件进行了替换。所以ffmpeg版本是最新的。可以执行ffmpeg官网上大多数的命令
基于Java的视频会议系统(软件程序+WORD论文文档) 2.1.1 技术可行性 网络视频会议是顺应市场的需求而设计的。采用JAVA 编程语言,用eclipse开发平台实现。用到多媒体技术(JAVA 多媒体框架JMF),视频和音频用TRP...