如何在简单的录音机程序中使用 audioDeviceIOCallback、audioDeviceAboutToStart 和 audioDeviceStopped
How to use audioDeviceIOCallback, audioDeviceAboutToStart and audioDeviceStopped in a simple audio recorder program
我尝试使用 Juce 从 demo runner 创建一个简单的录音机。
我提取了 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 class 中使用它但没有成功。
我还尝试让 MainComponent class 继承自 AudioIODeviceCallback :
class MainComponent : public Component,
private AudioIODeviceCallback,
private MidiInputCallback
{
public:
//...
我在 Build a multi-polyphonic synthesiser tutorial.
中找到了这个方法
但是当我尝试这样做时,我在主程序中遇到了覆盖错误 class。
所以这是我的问题,如何在我的项目中使用 AudioRecordingDemo class 中定义的 AudioIODeviceCallback、audioDeviceAboutToStart 和 audioDeviceStopped?
您可以找到源代码here。
我通过将 audioDeviceIOCallback 添加到我的 MainComponent Class 解决了我的问题:
void audioDeviceIOCallback (const float** /*inputChannelData*/, int /*numInputChannels*/,
float** outputChannelData, int numOutputChannels,
int numSamples) override
{
// make buffer
AudioBuffer<float> buffer (outputChannelData, numOutputChannels, numSamples);
// clear it to silence
buffer.clear();
}
最新的源代码:SimpleAudioRecorder
我尝试使用 Juce 从 demo runner 创建一个简单的录音机。 我提取了 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 class 中使用它但没有成功。
我还尝试让 MainComponent class 继承自 AudioIODeviceCallback :
class MainComponent : public Component,
private AudioIODeviceCallback,
private MidiInputCallback
{
public:
//...
我在 Build a multi-polyphonic synthesiser tutorial.
中找到了这个方法但是当我尝试这样做时,我在主程序中遇到了覆盖错误 class。
所以这是我的问题,如何在我的项目中使用 AudioRecordingDemo class 中定义的 AudioIODeviceCallback、audioDeviceAboutToStart 和 audioDeviceStopped?
您可以找到源代码here。
我通过将 audioDeviceIOCallback 添加到我的 MainComponent Class 解决了我的问题:
void audioDeviceIOCallback (const float** /*inputChannelData*/, int /*numInputChannels*/,
float** outputChannelData, int numOutputChannels,
int numSamples) override
{
// make buffer
AudioBuffer<float> buffer (outputChannelData, numOutputChannels, numSamples);
// clear it to silence
buffer.clear();
}
最新的源代码:SimpleAudioRecorder