这样设置缓冲区真的可行吗? 本帖最后由 oyljerry 于 2012-09-30 20:42:18 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你用什么函数?playsound?我记得那东西有bug的MciSendString吧。这个播放不错,功能强大的东西,就是有点小复杂 你这么看,把录制的声音和输出的声音是相同频率和结构的东西,不同的只是数据区。如果你通过网络传输,你录音那端先把录音的频率、时长、缓冲区等等信息发给放音那一端,然后放音那端建立好 WAVEFORMAT 等待录音端的数据到来,当录音端的数据到来就把数据缓存到一块符合录音端缓存大小的内存中,然后设置标志,XX内存可以播放,然后播放端检测到可以播放标志,就根据那个XX内存的参数指定将缓冲区设置到 WAVEHDR 结构的 ->lpData 里,再用 waveOutWrite 回放缓冲区数据,如果与此同时继续收到网络数据,就把数据缓存到另一块缓冲区里,同时在播放的XX内存队列里加入该缓冲区的序列号。这个队列可以考虑用数组完成,如两个数组:DWORD *PlayIndex; // 这个放播放队列索引DWORD **PlayBuff; // 这个放缓冲区块区还有就是 waveOutOpen 有一个回调函数地址,这个回调函数可以得知是否播放完成,等播放完成再判断是否有准备好的缓冲区和设置缓冲区到 WAVEHDR 进行回放,这样不会开销很多时间,甚至感觉不出有时间差。 我是使用wave函数族的,就是waveInOpen和waveOutOpen等,你说那种函数族我还不会用!!!不知道你有没有参考的东西。谢谢了 求一个向外拖放的概念 批处理命令怎么去修改一个文件的内容 问下能编写驱动级的,用哪个编程工具好 数据库连接正常,但连接表格出错 用wmp控件写的基于对话框的程序,在播放视频时只有声音没有图像。但直接用windows media player播放视频时,却是正常的. 十分奇怪的编译问题:"GetWindowInfo()" 哪里有《COM原理与应用》的电子书下载? 请问各位大虾,用vc编写程序时如何在其中加入汇编代码? 请大家推荐一个比较好可用来分析学习的vc源程序! 关于MODEM一些问题? unsignend short* 转换为BSTR时候错误了 调试的程序时还没进入入口函数就没有反应了
playsound?我记得那东西有bug的MciSendString吧。这个播放不错,功能强大的东西,就是有点小复杂
如果你通过网络传输,你录音那端先把录音的频率、时长、缓冲区等等信息发给放音那一端,
然后放音那端建立好 WAVEFORMAT 等待录音端的数据到来,当录音端的数据到来就把数据缓存到一块
符合录音端缓存大小的内存中,然后设置标志,XX内存可以播放,然后播放端检测到可以播放标志,
就根据那个XX内存的参数指定将缓冲区设置到 WAVEHDR 结构的 ->lpData 里,再用 waveOutWrite
回放缓冲区数据,如果与此同时继续收到网络数据,就把数据缓存到另一块缓冲区里,同时在播放的
XX内存队列里加入该缓冲区的序列号。这个队列可以考虑用数组完成,如两个数组:
DWORD *PlayIndex; // 这个放播放队列索引
DWORD **PlayBuff; // 这个放缓冲区块区还有就是 waveOutOpen 有一个回调函数地址,这个回调函数可以得知是否播放完成,等播放完成再
判断是否有准备好的缓冲区和设置缓冲区到 WAVEHDR 进行回放,这样不会开销很多时间,甚至感觉
不出有时间差。