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

标签 c++ directshow

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

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

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

最佳答案

最简单的方法(虽然不是最优雅的)是使用 Sample Grabber过滤器后跟 Null Renderer过滤以终止图表。这将使您能够使用样本采集器的 ISampleGrabber 访问原始媒体流。界面。获得样本后,您可以随心所欲地使用它们。

关于c++ - 如何使用 DirectShow 将音频流写入内存缓冲区而不是文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2433054/

相关文章:

c++ - 我如何从终端的谷歌测试套件中获取 C++ 代码超量?

c++ - UVC 扩展单元和 Directshow 集成

DirectShow Source 过滤器使用 Dekstop 窗口作为源

c++ - VideoInfoHeader2结构时抓帧

c++ - 无效指针 : difference between C and C++

c++ - 返回具有指定值的新数组?

directshow - 编写直接显示源过滤器

ffmpeg - 将原始 H264 NALU 流包装到 MP4 等容器中

c++ - 逐行写入文件并一次写入整个文本

c++ - 指向同一地址的指针彼此不同