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

发布于 2024-08-24 17:22:18 字数 339 浏览 7 评论 0原文

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

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

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

I have made a sample application which constructs a filter graph to capture audio from the microphone and stream it to a file. Is there any filter which allows me to stream to a memory buffer instead?

I'm following the approach outlined in an article on msdn and are currently using the CLSID_FileWriter object to write the audio to file. This works nicely, but I cannot figure out how to write to a memory buffer.

Is there such a memory sink filter or do I have to create it myself? (I would prefer one which is bundled with windows XP)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

逆蝶 2024-08-31 17:22:18

最简单的方法(尽管不是最优雅的)是使用 示例抓取器 过滤器,后跟 Null渲染器过滤器终止图形。这将使您能够使用示例抓取器的 ISampleGrabber 接口。获得样本后,您可以对它们进行您喜欢的操作。

The easiest way to do this (although not the most elegant) is to use a Sample Grabber filter followed by a Null Renderer filter to terminate the graph. This will enable you to get access to the raw media stream using the sample grabber's ISampleGrabber interface. Once you have the samples you can do what you like with them.

三生池水覆流年 2024-08-31 17:22:18

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

Use IMediaSample::GetPointer to retrieve a pointer to the buffer's raw data.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文