问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

语音聊天室的程序工作流程

发布网友 发布时间:2022-04-23 05:44

我来回答

1个回答

热心网友 时间:2023-10-02 07:01

当程序启动时首先执行建立当前主类的实例,当按下呼叫按钮的时候执行startPhone()方法,startPhone()方法通过调用initAudioHardware()方法建立AudioCapture对象和AudioPlayStream对象的实例PhoneMIC和PhoneSPK, 紧接着在建立CallLink子类的实例curCallLink来与具有目标IP地址的计算机进行scoket连接后,startPhone()方法又将子类VoiceSender作为secondThread线程启动,然后又调用run()方法。 run()方法通过已经建立的CallLink子类的实例curCallLink监听网络上的数据(也就是等待别人的呼叫),一旦有音频数据到来curCallLink 实例就为AudioPlayStream 对象PhoneSPK 提供网络传来的音频数据,而PhoneSPK在一个循环中不断的将音频数据转换为音频信号,完成类似电话听筒的功能。
子类VoiceSender 就作为第二线程启动的时候,startPhone() 方法传递给它的参数是实例化的CallLink 子类curCallLink , 子类VoiceSender 通过实例化的AudioCapture 对象PhoneMIC 将音频信号压缩成GSM数据,并通过curCallLink 将音频数据发送到具有目标IP 地址的计算机上,完成类似电话受话器的功能。
在这里实例化的CallLink 子类curCallLink 就相当于两个电话之间的电话线,这样通过我以上的解释大家对程序的原理就有一个大概的了解了吧。
其中的音频数据发送线程和音频数据接收线程是同步的,不过考虑到网络的因素,可能在声音的传输上有一些延迟,不过由于延迟比较小对及时听到对方的话语影响不大。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... 陕西职务侵占案立案准则 结婚后我的恋情维系了十年,怎么做到的? 玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 怎么语音聊天 用什么语音聊天交友软件? 初级出版专业资格考试有哪些教材 考出版专业资格考试中级必须要出版社相关从业经验吗?没有怎么办? 出版专业技术人员职业资格考试,分的中级和初级。这个考试报考人员需要怎样的条件?主要考些什么? 加湿器为什么不出雾 加湿器不出雾的原因和解决方法 出版专业职业资格考试,一门没过,是要两门都重新考吗 使用加湿器有哪些小窍门? 出版专业资格考试各科有多少分? 加湿器怎么清洗? 加湿器用什么清洗啊? 新闻出版系列专业中级职称申报需要那些条件。 加湿器好长时间没用,脏成这样了,能用水清洗吗,急 出版专业资格考试考试时间是什么时候? 作为出版专业中级技术人员的编辑,其主要职责包括(  )等。 加湿器水箱里长了青苔该怎样清洗? 出版专业职业资格考试中级 出版版1科和出版2科有什么区别 恒温恒湿试验箱保养方法有哪些? 出版专业资格证怎么考? 清洗加湿器的最佳方法是什么? 想问下,银行工作人员可以凭我身份证号码查到我的贷款记录以及征信吗? 别人有我的身份证证件能查我银行贷款吗? 警察能查到你的贷款记录吗?不是银行贷款 我的家乡在日刻着,哪里有条美丽的小河,这句歌词的名称是什么 北京哪里有条低调老街,古迹遍布,还有好多名人故居,看点十足? 我的家......哪里有条美丽的河是什么歌 广州哪里有条韩国街 成都哪里有小吃一条街? 电脑内存条哪里有买 北京哪里有一条街的小店? 哪里有卖年糕条的 内存条一般哪里有卖? 家具边角防护条哪里有卖呢? 广州哪里有美食一条街? 梦见死乌鸦是什么意思 万宝龙钟表行可以检验腰带吗? 你哪里有红西梅支条买吗? 梦见一只死乌鸦掉在脸上好不1好? 哪里有买挡水条 万宝龙手表保修出现误差怎么办