我在做声音录音和播放,我现在需要开辟一块内存,一边往里写数据,一边从里面读数据,写一次1024,而读每次不一定多少,有回调函数控制的,大家有什么好的方法来实现,我现在用了两个偏移量来控制读写,录出的声音,在当前窗口是正常的,如果是切换窗口的时候就有“咔咔”的声音,这可能与内存的读写有关系,请各位大侠帮忙!

解决方案 »

  1.   

    “咔咔”的声音是因为没有锁定内存用GlobeLock来锁定
      

  2.   

    destbuffer1 =(PBYTE)GlobalLock((HGLOBAL)GlobalAlloc(GMEM_MOVEABLE,10240+2048));
    将内存锁定后还是咔咔的声音,
    内存锁定有用吗,
    是不是内存同时读写了一个内存单元的数据,才会发出咔咔的声音啊
    请各位大侠继续帮忙,
    搞定马上揭帖
      

  3.   

    可能是由于切换窗口抢占CPU时间造成,咔咔的声音是录音的时候造成的还是播放的时候造成的?
      

  4.   

    楼上说的太有道理了,我是一边录音一边播放的,只是录音,是没有问题,只是播放也没问题,录音的同时播放出来就有咔咔的声音,goodboyws(深夜不眠者),该如何解决这样的问题啊,
    我再说的详细一点,比如,我开着这个程序,又打开一个窗口,他会出现咔咔的声音,然后我把这个窗口最小化,再打开一次,咔咔的声音消息,如果再切换到别的窗口,也是这样的情况,请问该如何解决。
    你说是不是同时读写内存造成的?
    多谢~
      

  5.   

    我现在发现就是因为同时读写引起的咔咔的声音,但不知道怎么解决,可能是因为占用cpu时间的时候,读的速度变慢了,写的不变,我的这块内存是循环来使用的,所以就导致同时读写一块内存。请