繁体   English   中英

如何使用DirectShow将音频流写入内存缓冲区而不是文件?

[英]How do I write the audio stream to a memory buffer instead of a file using DirectShow?

我制作了一个示例应用程序,它构建了一个过滤器图形,用于从麦克风中捕获音频并将其传输到文件中。 是否有任何过滤器允许我流式传输到内存缓冲区?

我正在遵循msdn上的文章中概述的方法,并且当前正在使用CLSID_FileWriter对象将音频写入文件。 这很好用,但我无法弄清楚如何写入内存缓冲区。

是否有这样的内存接收器过滤器或我是否必须自己创建它? (我更喜欢与Windows XP捆绑在一起的)

执行此操作的最简单方法(尽管不是最优雅)是使用Sample Grabber过滤器,然后使用Null Renderer过滤器来终止图形。 这将使您能够使用样本采集器的ISampleGrabber接口访问原始媒体流。 一旦你有样品,你可以用它们做你喜欢的。

使用IMediaSample :: GetPointer检索指向缓冲区原始数据的指针。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM