我要用VB6.0做一个小程序,请大家指点指点,指点指点,谢谢,谢谢了

2025-03-03 18:35:22
推荐回答(5个)
回答1:

可以用DirectX里的DirectSound来实现你所说的功能,大体思路如下:

1、用DirectSoundCapture对象来建立DirectSoundCaptureBuffer数据缓冲区对象,当数据缓冲区中有数据时(此时是两个声道),利用Capture Buffer Notification来激活用户来执行对数据的处理过程。
2、新建两个线程,并在其中建立两个支持DirectSound3D的DirectSoundSecondaryBuffer数据缓冲区对象,将DirectSoundCaptureBuffer数据缓冲区对象中的数据复制到两个DirectSoundSecondaryBuffer数据缓冲区对象中
3、利用DirectSound3D分别选取左右声道
4、检测每个声道中是否有数据。有数据流的DirectSoundSecondaryBuffer数据缓冲区对象开始把数据流保存到以当前时间命名的文件中,并不停的检测数据流是否中断,若中断则停止保存。无数据流的DirectSoundSecondaryBuffer数据缓冲区对象要在另一个DirectSoundSecondaryBuffer数据缓冲区对象数据中断前不停的检测是否有数据,有即开始保存数据。
5、每保存完一份数据,将数据的信息保存在数据库(使用数据库对象)中,销毁此线程,等待Capture Buffer Notification事件的再次触发,然后重复2-4

可以用一按钮来控制是否开始录音,也可以在程序的开始枚举系统中的可用设备,然后用户可以选择设备,其它也有许多细节要处理,如果你感兴趣,可以给我留言,然后我可以帮你做这个程序,再发源代码和程序以及相关资料给你。

回答2:

左右声道好像得从声卡取得I/O接口,那你这个程序至少需要3个线程了,1个主的,两个捕获左右声道

主线程负责:检测有无声音输入,当录音结束后还要保存到文件,并转换成mp3格式,最后存入数据库

另外:建议 录音和播放实行功能分离并独立实现

不是搞多媒体的,具体细节爱莫能助....

回答3:

rmb 加个0
偶帮你

回答4:

用DirectSound吧

回答5:

200RMB都没人搞哦! :)