语音通讯问题,紧急求助高手, 在线等待~~~~~~~~~~~~
我用VC编写的一个语音通讯程序,语音的处理由一个线程类 class CAudioIO public CWinThread{} 实现, 连接,发送与接收在主对话框中实现, 我调试(按 F5 方式)时通话正常, 但我执行程序时(按 Ctrl+ F5 方式)则只能听到哒哒哒的噪音, 如果有一方是调试状态(按 F5 方式)另一方是执行状态(按 Ctrl+ F5 方式)则调试状态的一端可以听到执行状态一端的声音,但执行状态这一端仍然只有哒哒哒的噪音, 我不知道是为什么. 请高手赐教. 问题点数:100、回复次数:15Top
1 楼2ndboy(贱男春)回复于 2002-08-24 20:50:01 得分 1
两端都Ctrl+ F5 呢?Top
2 楼VisualStudio(万物皆框架)回复于 2002-08-24 20:50:48 得分 0
如果两端都Ctrl+ F5则两端都是噪音Top
3 楼ylbug(臭虫)回复于 2002-08-24 20:54:40 得分 1
调试状态,有断点吗,在哪个线程中?Top
4 楼2ndboy(贱男春)回复于 2002-08-24 20:58:16 得分 41
你给的信息太少了,我想这可能跟你的多线程实现有关系,比如同步机制,还有就是本地收到语音数据不要马上播放,先把它存放在一个缓冲区里面,等收到多一些数据再一块儿播放出来。Top
5 楼VisualStudio(万物皆框架)回复于 2002-08-24 20:59:43 得分 0
有没有断点都一样, 只要是按 F5 调试就正常, 按 Ctrl + F5 就不行Top
6 楼VisualStudio(万物皆框架)回复于 2002-08-24 21:08:47 得分 0
只要收到语音数据我就播放,而且我的录音和播放是在一个线程类里面完成,MM_WIM_DATA 和 MM_WOM_DONE 也在这个类里面Top
7 楼VisualStudio(万物皆框架)回复于 2002-08-24 21:10:05 得分 0
你们还需要什么信息?Top
8 楼GaoDi()回复于 2002-08-24 23:52:16 得分 41
首先请仔细检查一下你的缓冲区的设置与使用。
其次Debug状态下VC对你的程序进行了一定的‘保护’,这也是一个出现错误的原因(尤其是指针等)
第三在系统的声音设置中(双击状态栏右边的小喇叭可弹出对话框)去掉混音选项。
第四你可以先把所有的语音数据保存成文件,然后用你的播放模块进行播放,看看哪里有问题。
第五耐心一点调,用你这种类似的多线程的方法是可行的,我已做出一个了。当时我也出现过你的情况,上面四条实在是心得而已:)Top
9 楼lws08()回复于 2002-08-25 01:32:49 得分 5
同意,GaoDi,以前也碰到这类问题,debug下可以得到正确结果,换成Realse就不行,象这种问题大约都是缓冲越界等造成(我是这么想的,呵呵)Top
10 楼dxxb(天下无雪)回复于 2002-08-25 07:43:07 得分 5
缓冲区的设置和使用上有问题。
====
努力,奋斗!
Top
11 楼VisualStudio(万物皆框架)回复于 2002-08-25 09:39:11 得分 0
首先我的程序不论是Debug版本还是Release版本都出现同样的问题,
我想问题可能出在接收和播放上,因为处于调试状态(按 F5)的一端可以正常听另一端的语音,而不论另一端是执行状态还是调试状态,说明我的连接、录音、和发送是没有问题的,所以问题只会出现在接收和播放上.Top
12 楼2ndboy(贱男春)回复于 2002-08-25 11:08:07 得分 5
上面不是说过了吗?收到多一些数据之后再播放,否则一定是断续的!Top
13 楼hfycl(袒右)回复于 2002-08-25 14:45:15 得分 1
markTop
14 楼VisualStudio(万物皆框架)回复于 2002-08-26 10:26:06 得分 0
我已经解决了,谢谢大家,是播放缓冲区的分配与使用有问题Top
15 楼nbgyf(梅花峰)回复于 2002-08-26 10:37:13 得分 0
恭喜,恭喜
我来晚了Top




