java 语音聊天室_java语音聊天室原形的实现
原本以为从 麦克风 上获得音频输入很复杂,原来javaSound已经封装的很简单了。
可以使用AudioCapture来完成。
聊天室音频的回放一般用流来完成:AudioPlayStream 类负责。
聊天室比较复杂的地方还是关于音频流和多线程的结合使用。
1 需要为每个聊天的人建立一个Session,就是一个客户端一个连接。
2 需要建立一个和Session对应的线程来发送音频流。
3 建立一个接收音频流的线程,收到后,播放。
技术难点:
1、看下面的代码:
while ((!Thread.currentThread().interrupted())) {
try {
nBR = pbIS.read(data);
if (nBR == -1) {
c = true;
break;
}
pbL.write(data, 0, nBRead);
} catch (IOException e) {
System.exit(1);
}
}
上面就是在: while ((!Thread.currentThread().interrupted()))
这一句,到底是在什么情况下使用呢?
这里的System.exit(1) 是不是退出当前的线程?
2、
while ((!Thread.currentThread().interrupted())) {
b = mIS.read(cV, 0, bS);
sS.write(cV, 0, b);
}
采用这样的方式来进行语音的输入,如果线程断了就打印出错信息。
到现在为止已经可以实现分布聊天了,采用GSM语音压缩,不过测试的时候发现即使客户端和服务器在本地也有0.5分钟的延迟。
现在还没有缓冲处理,就是多人聊天的时候,如果说话方望速快,接受方速度慢,就可能会有问题。20040710 tcf
现在发现上面的这些思路实际上和语音email的思路很接近:
java 语音聊天室_java语音聊天室原形的实现相关推荐
- java 简单的聊天室_Java简单聊天室
实现Java简单的聊天室 所用主要知识:多线程+网络编程 效果如下图 /** * * @author Administrator * *简单的多人聊天系统--重点:同时性,异步性 *1.客户端:发送消 ...
- java实时语音通话案例_java语音播报案例
在做项目的过程中,我们往往会用到语音播报--把文字转换成语音播放出来,自动识别语言进行播报,那么我们现在来看看怎么操作: 1.下载jacob.jar,下载地址:这里 2.32位操作系统下载:jacob ...
- 通过QT_TCP和百度AI接口实现的支持语音输入的多人聊天室
本项目主要通过tcp实现的并发聊天室再加上百度ai的语音识别接口,实现的支持语音识别输入的并发聊天室. 1.服务器 服务器设置的一个没有ui的界面的软件,实现聊天数据的中介 2.客户端 客户端通过qt ...
- java socket编程聊天室_Java Socket通信之聊天室功能
Java Socket通信之聊天室功能 发布时间:2020-10-17 14:36:00 来源:脚本之家 阅读:73 作者:LY_624 本文实例为大家分享了Java Socket聊天室功能的具体代码 ...
- java 简单聊天室_java实现简单聊天室单人版
本文实例为大家分享了java实现简单聊天室的具体代码,供大家参考,具体内容如下 先整理下思路: 1.创建一个通信服务端,传入端口号和相关的流后等待客户端连接,并初始化图形界面. 2.创建一个JFram ...
- Java实现--基于服务器的多用户聊天室
多用户聊天室 1.项目简介 2.开发环境 3.项目具体功能 4.运行结果 5.其他功能实现运行结果 6.具体实现代码 登录页面: 客户端: 服务器端: 1.项目简介 基于服务器的多用户聊天室应用软件. ...
- Java Socket实现简易多人聊天室传输聊天内容或文件
Java Socket实现简易多人聊天室传输聊天内容或文件 Java小练手项目:用Java Socket实现多人聊天室,聊天室功能包括传输聊天内容或者文件.相比于其它的聊天室,增加了传输文件的功能供参 ...
- java多线程聊天室_【Java】Socket+多线程实现控制台聊天室
另:具体代码实现已移植github: https://github.com/ygj0930/Chat-Room-in-Java ,大家fork之余记得给我个star呀~ 聊天室程序的结构图: 架构解 ...
- java仿qq聊天系统 多人聊天室
目录 项目介绍 项目截图 服务器与客户端 新用户注册 注册新账号成功 进入聊天室 多人在线 选择发送文件 文件接收提醒 项目代码参考 服务器入口程序 服务器请求处理 原理解析 服务器多人网络连接: 如 ...
最新文章
- JavaScript正则表达式之语法
- 20)内联函数(其实,我不懂)
- Tensorflow利用函数修饰符@tf.custom_gradients自定义函数梯度
- 数据库概念 MySQL 库操作 表操作 记录操作
- SASS 和 SCSS 的区别
- Magicodes.Pay,打造开箱即用的统一支付库,已提供ABP模块封装
- 把今天接到的任务都给搞定了
- DB2新建编目及删除编目
- springboot获取项目路径_springboot学习
- 设计模式之——单例模式(Singleton)的常见应用场景(转):
- Java中的继承:父类和子类的关系
- python实例26[计算MD5]
- 孔浩用的mysql工具_孔浩Java教学系列视频教程
- 用户研究三部曲:有关用户研究的战略思考
- 程序、代码、硬件常见的英文缩写
- 计算机word文档技巧,Word文档操作技巧:同时打开多个文档3种方法-word技巧-电脑技巧收藏家...
- python打印文档添加条码_使用Python在Excel中批量生成条形码
- win7双屏幕,双任务栏
- zabbix报警方式,邮件报警和微信报警。
- 如何激励“躺平”员工?
热门文章
- PS人像磨皮调色插件ultimate retouch中文汉化版
- 【CVPR 2019】Semantic Image Synthesis with Spatially-Adaptive Normalization(SPADE)
- 基于Extent 的文件存储(fiemap)
- C# SATO条码打印机(CT408i)
- Java 泛型的协变与逆变
- FPGA Verilog实现二进制转BCD码
- 防盗链——防止其他页面通过url直接访问本站资源
- c语言期末考试选择题考点
- 计算机开机出现alert,电脑开机提示CMOS Date/Time Not Set的解决方法
- Science撤回“天使粒子”论文,曾被视为诺奖级发现,张首晟等4位华人科学家为通讯作者...