我想做一个音视频聊天软件;
    我通过VFW保存一副BMP图片,再压缩后直接发送出去,解决了视频聊天部分。
    但是音频录取,回放部分不知如何下手。
    我知道VFW的回调函数capSetCallbackOnWaveStream可以得到一祯音频,capSetCallbackOnVideoStream可以得到一祯视频,但这两个函数好像只能在录制AVI文件的时候才起作用。而且视频流压缩成MPG需要用户电脑上的有插件支持。
    我想把音频和视频分开传送,请高手指导一下如何用VB控制录音、传送、回放?谢谢!!!
    

解决方案 »

  1.   

    又是吴兄,幸会啊!
        可是我的水平不高,除了VB也不懂别的语言。
        谢谢你的关注,我正在网上找与VB录音相关的文章看。也找了一些网络音频传送的控件,有的很好,但是不支持内网穿透。
      

  2.   

    我知道VFW的回调函数capSetCallbackOnWaveStream可以得到一祯音频,capSetCallbackOnVideoStream可以得到一祯视频,但这两个函数好
    像只能在录制AVI文件的时候才起作用。
    ============================================
    这个是什么意思?不一定要录制avi啊,可以实时捕获啊
    我现在有个老外的视频捕获控件和它的调用代码(都是免费)
    还有一个用vc语音聊天dll,有vb示例(不是我写的,也是不能穿透NAT)
    还有一个我自己用C#写的语音视频聊天程序(不能穿透NAT)
    还有一个用vb写的语音捕获程序,不过那个程序在vb里跑会崩溃,是我从上面那个程序用vb翻译过来的你留个email,我都可以发给你,看你喜欢用哪个了
    至于为什么不做NAT穿透,主要是我比较懒,怕麻烦...
      

  3.   

    其实你自己做更好
    主要就是用WaveIn打头的那几个API,你查查msdn
      

  4.   

    谢谢吴兄。
        我在使用capSetCallbackOnWaveStream回调函数时,程序没有反应,当录制AVI文件时,才有反应。而使用capCaptureSequenceNoFile则会引起电脑停顿。
        当然,我不想用VFW获取声音了,正在网上看WaveIn*相关的API。有新进展,我再把情况发到这个贴子上。
        我的EMail是:[email protected],请发到这个邮箱。谢谢!
      

  5.   

    capCaptureSequenceNoFile引起电脑停顿是vb的程序是单线程的,大量数据捕获传送就扛不过来了
    所以建议你不要用vb做.............
      

  6.   

    多谢吴兄!
        代码已收到。我试了一下很好。但是由于NAT穿透问题,所以我在想使用WaveInXXX函数得到音频数据再传送。现已通过WaveInXXX得到了一段音频的byte数组,但不知如何压缩。据说QQ是使用TRUE DSP格式地。
        我先把这个贴结了,压缩问题解决不了我再发贴请教!向你学习!再次感谢!