Используя Juce, я попытался создать простой аудио-рекордер из демонстрационного ролика .Я извлек AudioRecordingDemo , чтобы создать звукозаписывающее устройство на основе простого аудиопроекта.
Когда я нажимаю кнопку начала записи, для sampleRate по-прежнему используется значение по умолчанию:
void startRecording(const File& file)
{
stop();
if (sampleRate > 0)
{
// Create an OutputStream to write to our destination file...
sampleRate = 0.0
В AudioRecordingDemo audioDeviceAboutToStart увеличивает частоту дискретизации.Но в моем основном компоненте нет AudioIODevice.
void audioDeviceAboutToStart(AudioIODevice* device) override
{
sampleRate = device->getCurrentSampleRate();
}
AudioIODeviceCallback, который устанавливает вход и выход, также никогда не вызывается в моем коде.Я попытался использовать его в своем классе MainComponent безуспешно.
Я также пытался сделать класс MainComponent наследуемым от AudioIODeviceCallback:
class MainComponent : public Component,
private AudioIODeviceCallback,
private MidiInputCallback
{
public:
//...
Я нашел этот метод в Buildучебник по полифоническому синтезатору .
Но когда я попробовал это, я получил ошибку перезаписи в главном классе.
Итак, вот моя проблема, как использовать AudioIODeviceCallback,audioDeviceAboutToStart и audioDeviceStopped, которые определены в классе AudioRecordingDemo в моем проекте?
Исходный код можно найти здесь .