原本以为从 麦克风 上获得音频输入很复杂,原来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语音聊天室原形的实现相关推荐

  1. java 简单的聊天室_Java简单聊天室

    实现Java简单的聊天室 所用主要知识:多线程+网络编程 效果如下图 /** * * @author Administrator * *简单的多人聊天系统--重点:同时性,异步性 *1.客户端:发送消 ...

  2. java实时语音通话案例_java语音播报案例

    在做项目的过程中,我们往往会用到语音播报--把文字转换成语音播放出来,自动识别语言进行播报,那么我们现在来看看怎么操作: 1.下载jacob.jar,下载地址:这里 2.32位操作系统下载:jacob ...

  3. 通过QT_TCP和百度AI接口实现的支持语音输入的多人聊天室

    本项目主要通过tcp实现的并发聊天室再加上百度ai的语音识别接口,实现的支持语音识别输入的并发聊天室. 1.服务器 服务器设置的一个没有ui的界面的软件,实现聊天数据的中介 2.客户端 客户端通过qt ...

  4. java socket编程聊天室_Java Socket通信之聊天室功能

    Java Socket通信之聊天室功能 发布时间:2020-10-17 14:36:00 来源:脚本之家 阅读:73 作者:LY_624 本文实例为大家分享了Java Socket聊天室功能的具体代码 ...

  5. java 简单聊天室_java实现简单聊天室单人版

    本文实例为大家分享了java实现简单聊天室的具体代码,供大家参考,具体内容如下 先整理下思路: 1.创建一个通信服务端,传入端口号和相关的流后等待客户端连接,并初始化图形界面. 2.创建一个JFram ...

  6. Java实现--基于服务器的多用户聊天室

    多用户聊天室 1.项目简介 2.开发环境 3.项目具体功能 4.运行结果 5.其他功能实现运行结果 6.具体实现代码 登录页面: 客户端: 服务器端: 1.项目简介 基于服务器的多用户聊天室应用软件. ...

  7. Java Socket实现简易多人聊天室传输聊天内容或文件

    Java Socket实现简易多人聊天室传输聊天内容或文件 Java小练手项目:用Java Socket实现多人聊天室,聊天室功能包括传输聊天内容或者文件.相比于其它的聊天室,增加了传输文件的功能供参 ...

  8. java多线程聊天室_【Java】Socket+多线程实现控制台聊天室

    另:具体代码实现已移植github: https://github.com/ygj0930/Chat-Room-in-Java  ,大家fork之余记得给我个star呀~ 聊天室程序的结构图: 架构解 ...

  9. java仿qq聊天系统 多人聊天室

    目录 项目介绍 项目截图 服务器与客户端 新用户注册 注册新账号成功 进入聊天室 多人在线 选择发送文件 文件接收提醒 项目代码参考 服务器入口程序 服务器请求处理 原理解析 服务器多人网络连接: 如 ...

最新文章

  1. JavaScript正则表达式之语法
  2. 20)内联函数(其实,我不懂)
  3. Tensorflow利用函数修饰符@tf.custom_gradients自定义函数梯度
  4. 数据库概念 MySQL 库操作 表操作 记录操作
  5. SASS 和 SCSS 的区别
  6. Magicodes.Pay,打造开箱即用的统一支付库,已提供ABP模块封装
  7. 把今天接到的任务都给搞定了
  8. DB2新建编目及删除编目
  9. springboot获取项目路径_springboot学习
  10. 设计模式之——单例模式(Singleton)的常见应用场景(转):
  11. Java中的继承:父类和子类的关系
  12. python实例26[计算MD5]
  13. 孔浩用的mysql工具_孔浩Java教学系列视频教程
  14. 用户研究三部曲:有关用户研究的战略思考
  15. 程序、代码、硬件常见的英文缩写
  16. 计算机word文档技巧,Word文档操作技巧:同时打开多个文档3种方法-word技巧-电脑技巧收藏家...
  17. python打印文档添加条码_使用Python在Excel中批量生成条形码
  18. win7双屏幕,双任务栏
  19. zabbix报警方式,邮件报警和微信报警。
  20. 如何激励“躺平”员工?

热门文章

  1. PS人像磨皮调色插件ultimate retouch中文汉化版
  2. 【CVPR 2019】Semantic Image Synthesis with Spatially-Adaptive Normalization(SPADE)
  3. 基于Extent 的文件存储(fiemap)
  4. C# SATO条码打印机(CT408i)
  5. Java 泛型的协变与逆变
  6. FPGA Verilog实现二进制转BCD码
  7. 防盗链——防止其他页面通过url直接访问本站资源
  8. c语言期末考试选择题考点
  9. 计算机开机出现alert,电脑开机提示CMOS Date/Time Not Set的解决方法
  10. Science撤回“天使粒子”论文,曾被视为诺奖级发现,张首晟等4位华人科学家为通讯作者...