C++ 如何在简单的录音机程序中使用AudioDeviceOCallback、AudioDeviceBoutToStart和AudioDevicesToping

C++ 如何在简单的录音机程序中使用AudioDeviceOCallback、AudioDeviceBoutToStart和AudioDevicesToping,c++,audio,audio-recording,juce,C++,Audio,Audio Recording,Juce,使用Juce,我试图从中创建一个简单的录音机。 我从一个简单的音频项目中提取了创建录音机的方法 单击开始录制按钮时,采样器仍具有默认值: void startRecording(const File& file) { stop(); if (sampleRate > 0) { // Create an OutputStream to write to our destination file...

使用Juce,我试图从中创建一个简单的录音机。 我从一个简单的音频项目中提取了创建录音机的方法

单击开始录制按钮时,采样器仍具有默认值:

void startRecording(const File& file)
    {
        stop();

        if (sampleRate > 0)
        { 
            // Create an OutputStream to write to our destination file...  
采样率=0.0

在AudioRecordingDemo中,AudioDeviceABoutStart会增加采样率。但我的主要组件中没有任何音频设备

void audioDeviceAboutToStart(AudioIODevice* device) override
{
    sampleRate = device->getCurrentSampleRate();

}
设置输入和输出的AudioIODeviceCallback在我的代码中也从未调用过。我试图在MainComponent类中使用它,但没有成功

我还尝试使MainComponent类从AudioIODeviceCallback继承:

class MainComponent : public Component,
         private AudioIODeviceCallback,
         private MidiInputCallback

{
public:
//...
我在网上找到了这个方法

但是当我尝试这个时,我在主类中得到了一个覆盖错误

这就是我的问题,如何使用AudioIODeviceCallback、AudioDeviceBoutToStart和audioDeviceStopped,它们在我的项目中的AudioRecordingDemo类中定义


您可以找到源代码

我通过将AudioDeviceLocallback添加到我的MainComponent类中修复了我的问题:

void audioDeviceIOCallback(常量浮点**/*inputChannelData*/,int/*numInputChannels*/,
浮点**输出通道数据,整数输出通道,
int numSamples)覆盖
{
//缓冲
音频缓冲区(outputChannelData、NumOutChannels、numSamples);
//让它安静下来
buffer.clear();
}
源代码为最新版本: