首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > 多媒体 >

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

2012-03-26 
录音并实时播放这个问题纠结我好久了,我做了一个程序,基本上能实现了。我一个buffer满了在wim_data中就取得

录音并实时播放
这个问题纠结我好久了,我做了一个程序,基本上能实现了。我一个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来取就可以了。 注意 要做好同步。 可以使用关键区

我估计你的错误也有可能是同步做的不好造成的。

热点排行