visual-c++ - 捕获麦克风的缓冲区

标签 visual-c++ audio directshow

我正在创建一个程序,该程序将录制麦克风音频,并使用Visual C++中的DirectShow API将其转换为mp3。
没有内置的过滤器可以将音频转换为MPEG Layer 3即MP3,因此我想将麦克风缓冲区发送到称为LAME的外部库,它将转换MP3中的数据,然后可以使用将其写入文件文件编写器。
但是问题是我不知道如何访问麦克风的缓冲区,请帮助我,我是Directshow编程的新手。

或告诉我其他方法

最佳答案

如果您想分发您的应用程序,那么我建议您使用Sample Grabber代替Lame DirectShow Encoder过滤器。这将避免过滤器注册,但是您将需要处理转换逻辑。

关于使用LAME编码器,

  • hr = pOutputDevice-> FindPin()的返回值是多少。
  • ,您可以尝试使用GraphEdit并检查引脚属性。
  • 关于visual-c++ - 捕获麦克风的缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27243500/

    相关文章:

    android - onMetadataChanged MediaControllerCompat.Callback 从未调用过

    audio - 测量音频噪声电平

    c++ - 有什么方法可以在 Windows Vista+ 上不注册 proppage.dll 来访问远程过滤器图吗?

    c++ - DirectShow 源过滤器

    opengl - glew32.dll 运行时错误

    visual-c++ - 带有 Visual c++ 的 MSXML

    c++ -/d2vzeroupper MSVC 编译器优化标志在做什么?

    c++ - 如何在另一个输入语句中使用变量?

    audio - 我如何使用 ffmpeg 每 5 秒从视频中提取音频

    c++ - 适用于 Windows Mobile 的 DirectShow、视频缩放和图像捕获