当前位置: 代码迷 >> 多媒体/流媒体开发 >> 录音并实时播放,该怎么处理
  详细解决方案

录音并实时播放,该怎么处理

热度:4012   发布时间:2013-02-26 00:00:00.0
录音并实时播放
这个问题纠结我好久了,我做了一个程序,基本上能实现了。我一个buffer满了在wim_data中就取得这个buffer的数据然后开一个线程去播放,用setevent和waitfor的线程同步来实现,一个buffer满了就set一下,然后播放循环里waitfor,一旦发现buffer满了就播放。目前基本上可以实现了。但是关键是按下停止键再按播放键就偶尔会出错。
大家有做过实时录音并播放的么?采用什么思路啊?谢谢

------解决方案--------------------------------------------------------
没做过,但是做过 录制视频 并预览的 不知道能不能有帮助
1 是用 SmartTee分流 但是只能用Pin连接 不能RenderStream 来动态链接 filter
2 hr = i_pCapture->RenderStream (&PIN_CATEGORY_PREVIEW, &MEDIATYPE_Video,pCaptureFilter, NULL, NULL); 
hr = i_pCapture->RenderStream(&PIN_CATEGORY_CAPTURE,&MEDIATYPE_Video,pCaptureFilter,NULL,pAsfWriter);
这样 直接重设备上 连接出来
------解决方案--------------------------------------------------------
我知道到你出了什么错。 但应该采用这样的思路。 录制好的Buffer应该放到一个Buffer队列中。 播放程序到这个Buffer来取就可以了。 注意 要做好同步。 可以使用关键区

我估计你的错误也有可能是同步做的不好造成的。
  相关解决方案