我正在创建一个程序,该程序将录制麦克风音频,并使用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/

    10-13 08:19