Visual c++ 在某一级别对音频进行编码visual c++;2008(32位)

Visual c++ 在某一级别对音频进行编码visual c++;2008(32位),visual-c++,audio-recording,Visual C++,Audio Recording,我正在尝试制作一个从输入音频设备录制音频的程序(示例:麦克风) 但仅当信号处于激活状态时(表示仅当有人在麦克风中讲话时) 并将其另存为mp3格式 我试过了,但这太难了,请帮助我我知道实现这一点的方法,尽管我不确定这是否是最好的方法:如果您不熟悉DirectShow,这不一定很容易,因为它需要您学习该技术的许多方面。您可以使用DirectShow设置大致如下所示的媒体管道: 捕获源->采样捕获器->音频渲染器 这是一个简单的回放图。在样本抓取器中,您可以在样本通过管道时截取样本。例如,在这里,您可

我正在尝试制作一个从输入音频设备录制音频的程序(示例:麦克风) 但仅当信号处于激活状态时(表示仅当有人在麦克风中讲话时) 并将其另存为mp3格式
我试过了,但这太难了,请帮助我

我知道实现这一点的方法,尽管我不确定这是否是最好的方法:如果您不熟悉DirectShow,这不一定很容易,因为它需要您学习该技术的许多方面。您可以使用DirectShow设置大致如下所示的媒体管道:

捕获源->采样捕获器->音频渲染器

这是一个简单的回放图。在样本抓取器中,您可以在样本通过管道时截取样本。例如,在这里,您可以对样本进行处理,以查看它是否为静默。当你做对了,试着建立一个类似这样的图表

捕获源->采样捕获器->mp3编码器->文件写入器

不确定filewriter(如果它适用于mp3编码的数据):更多家庭作业

然后使用可以设置多个图形

1) 捕获源->采样捕获器->GMFBridgeSink 2) GMFBridgeSource->mp3编码器->filewriter 3) GMFBridgeSource->渲染器(或其他)

GMFBridge允许您在播放期间在图形之间动态切换。 因此,1)通常会连接到3)直到检测到特定级别的音频,然后桥接到2)。一旦音频电平降至3)


我不知道这是否是最好的解决方案,但这是一个解决方案或起点。也许其他人可以提出另一种方法。祝你好运。

谢谢你,我不太懂,因为我是v-c++新手,但我会尝试这样做,再次感谢你,如果你现在需要帮助,请让他回答我。