[英]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.