播放音频处理器的最简单的独立 JUCE 应用程序?

问题描述

我找到的所有 JUCE 教程和 AudioProcessor 示例都是插件。如果我想创建自己的应用程序来播放AudioProcessor,但没有插件怎么办?

例如:

HelloSamplerAudioProcessor::HelloSamplerAudioProcessor()
     : AudioProcessor (BusesProperties()
               .withOutput("Output",juce::AudioChannelSet::stereo(),true)

我正在将其插入到这样的 AudioDeviceManager 中:

auto samplerProcessor = std::make_shared<HelloSamplerAudioProcessor>();
auto samplerProcessorPlayer = std::make_shared<juce::AudioProcessorPlayer>();
samplerProcessorPlayer->setProcessor (samplerProcessor.get());
deviceManager.addAudioCallback (samplerProcessorPlayer.get());

但是因为它没有输入,我得到

I/JUCE: JUCE Assertion failure in juce_AudioProcessor.cpp:200
I/JUCE: JUCE Assertion failure in juce_AudioProcessor.cpp:350
I/JUCE: JUCE Assertion failure in juce_AudioProcessor.cpp:356
JUCE Assertion failure in juce_AudioProcessor.cpp:360
I/JUCE: JUCE Assertion failure in juce_AudioProcessor.cpp:363

来自这里:

void AudioProcessor::setPlayConfigDetails (int newNumIns,int newNumOuts,double newSampleRate,int newBlockSize)
{
    bool success = true;

    if (getTotalNumInputChannels() != newNumIns)
        success &= setChannelLayoutOfBus (true,AudioChannelSet::canonicalChannelSet (newNumIns));

    // Failed to find a compatible input configuration
    jassert (success); //line 350

    if (getTotalNumOutputChannels() != newNumOuts)
        success &= setChannelLayoutOfBus (false,AudioChannelSet::canonicalChannelSet (newNumOuts));

    // Failed to find a compatible output configuration
    jassert (success); //line 356 

    // if the user is using this method then they do not want any side-buses or aux outputs
    success &= disableNonMainBuses();
    jassert (success);

    // the processor may not support this arrangement at all
    jassert (success && newNumIns == getTotalNumInputChannels() && newNumOuts == getTotalNumOutputChannels());

    setRateAndBufferSizeDetails (newSampleRate,newBlockSize);
    ignoreUnused (success);
}

结果是 AudioDeviceManager 在我的处理器上调用setPlayConfigDetails(上面的函数),这给出了断言,因为我的 AudioProcessor 上没有输入。

如果我向 HelloSamplerAudioProcessor 添加一个输入,它不再断言,但我得到一个回声,即使我禁用了输入。无论如何,我不需要它,我不需要向我的 AudioProcessor 添加输入,我只想从它的样本中输出音频。

我应该如何在 Juce 中制作一个仅播放 AudioProcessor 的独立应用程序?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...