语音聊天软件完成心得.
给自己看的^_^
1.为了保证实时性,给输入设备的单个缓冲块不能太大,最好用1K(相当于延时10多ms),然后多准备几个这样的数据块(一般20个).
2.最好是把WAVEHDR和数据定义在一起,方便传输控制.
SNDDATABLOCK struct
header WAVEHDR <?>
wavedata db 1024 dup(?)
SNDDATABLOCK ends
3.处理录音数据块用回调函数方法是很好的选择.虽然MSDN上很是强调,不要在回调里调用系统函数,除了它列的那几个函数,否则会造成死锁.但是只要仔细地想想,死锁也只会发生在声卡方面,总不可能说录个音,还会造成两个程序因为抢占打印机造成死锁的吧.这里面最容易造成的是数据块上的死锁.所以最好是把这次产生的数据块复制出去,然后再把它再次作为录音用的缓冲.而复制出去的数据,我们可以任意使用.
4.如果采用第2点说那种方法,显然是很好的,但是要注意,如果把数据复制出来后,这个结构体里header的lpData是没有改变的,它还是以前的那个内存地址,应该让它变成新地址.不然复制也没有意义.
mov esi,buffer
mov edi,buffer
add edi,sizeof WAVEHDR
assume esi:ptr SNDDATABLOCK
mov [esi].header.lpData,edi
5.采用UDP传输数据,接收方收到数据后更要注意第四点!!!!
6.接收方处理数据是比较简单的,就是把这个音频数据播放出来就OK了.采用waveOutWrite函数,但之前必须用waveOutPrepareHeader函数准备文件头,当然,这个已在数据包中,很简单,只不过非常要注意的地方就是准备之前,要记得将header里的一些内容设成0,不然会出错.
mov [esi].header.dwLoops,0
mov [esi].header.dwFlags,0
mov [esi].header.lpNext,0
mov [esi].header.Reserved,0
mov [esi].header.dwUser,0
语音聊天软件完成心得.相关推荐
- 什么是语音聊天软件源码,语音直播间礼物如何开发
语音聊天软件源码是指,能够通过其搭建"用户使用其可以进行语音聊天操作"的软件源码. 语音聊天软件源码的形式是很多样的,它可以以直播的形式出现,可以以多人语音房间的形式出现,也可以用 ...
- 语音聊天软件LoudTalks 免费
北京小C原文链接 官方下载地址:http://www.loudtalks.com/bb/ [软件分享]语音聊天软件LoudTalks 免费版 详细教程+本地下载 by@杨鸿颢–黑莓控 2011-06- ...
- 基于Internet的语音聊天软件设计与实现
基于Internet的语音聊天软件设计与实现 朱国华,夏敏捷 (中原工学院 计算机科学系 ,河南 郑州 450007) 摘要:文章对网络环境下语音通信的原理进行了系统地分析,详细阐述了语音的采集.语音 ...
- teamspeak语音服务器价格,语音聊天社交很热门,带你搭建自己的语音聊天服务器...
在近段时间,在国外,一款主打语音聊天社交的软件Clubhouse火爆了全球,Clubhouse是一款主打即时性的音频社交软件,诞生于2020年3月,由Paul Davison和前谷歌员工Rohan S ...
- 使用ZEGO SDK零基础搭建Android语音聊天应用
2021年初,Clubhouse引爆了在线语音聊天应用,字节跳动.小米.快手.映客等国内泛娱乐社交厂商已纷纷跟进,那么搭建一个类Clubhouse的语音聊天软件难吗? 其实Clubhouse的技术原理 ...
- 想把语音聊天程序源码上架,这工作可怎么做?
<2019中国网络视听发展研究报告>显示,2019年,网络视频用户规模高达7.25亿,其中网络音频用户达3.01亿,且从2018年底开始,陌生人语音社交程序如一匹黑马般杀出,成为新的社交热 ...
- 计算机录音功能怎样设置,语音聊天录音软件
语音聊天录音软件在Windows Vista操作系统中应如何进行录音设置?如果您在使用或设置时有一些困难或疑问,请参照以下录音设置步骤进行操作: 1.点击语音聊天录音软件设置界面中的录音设置菜单后,系 ...
- 局域网聊天软件源代码(包括语音聊天)
// Chat.h : PROJECT_NAME 应用程序的主头文件 // #pragma once #ifndef __AFXWIN_H__ #error "在包含此文件之前包含&quo ...
- #实现互联网聊天_局域网内两台电脑如何实时语音聊天通话
有的人想实现局域网内实时语音通话的功能,如果电脑可以连接互联网的话,可安装QQ,电脑版微信等进行实时语音聊天,如果电脑只连接了内网,并未连接因特网,该怎么实现呢?其实不难,只需要通过局域网声音传输软件 ...
最新文章
- Js获取宽高度的归纳总结
- python编程基础是什么-Python面向对象编程基础解析(一)
- 【Python基础】零基础学习Python列表操作
- 启明云端分享|一组图带你快速了解乐鑫ESP MCU系列产品
- java8并行流_Java 8:CompletableFuture与并行流
- class 和 struct的区别
- skiplist原理与实现
- 苹果概念手机_吊打华为苹果!马云概念手机终于问世?
- go项目中使用makefile文件
- php抛出异常Exception和\Exception使用区别
- matlab之GUI界面设计(1)
- 因严重 OpenSSL 漏洞,Fedora 37 推迟至 11 月中旬发布
- 教程:如何将一首歌生成一个二维码?
- 你最该知道的事(高级)
- 本地安全管理审核UDF 第2版 - lsasecur.au3
- 根据具体地址计算经纬度
- 关于移动硬盘变成CD驱动器的非正常修复方法
- 高效的磁力搜索引擎 -_高效的企业测试-结论(6/6)
- cobar mysql部署方案_Cobar的安装和配置步骤
- [对话CTO]当当网熊长青:兴趣是成为优秀工程师的第一因素-CSDN.NET