我在两个单独的类中有两个单独的 AudioSampleBuffer 对象。这是第一类的私有(private)部分,称为 TransportBar.h:
private:
Atomic<int> playState;
Atomic<int> soloState;
Atomic<int> muteState;
unsigned int bufferPosition;
AudioSampleBuffer masterBuffer;
static const int bufferSize = 352800; //constant
这是称为 Looper.h 的部分类的私有(private)部分:
private:
//Shared data
Atomic<int> recordState;
Atomic<int> playState;
//Audio data
static const int bufferSize = 352800; //constant
unsigned int bufferPosition;
AudioSampleBuffer audioSampleBuffer;
我正在创建的应用程序有 4 个记录到 audioSampleBuffer 的轨道。然后我想要一个“主”播放按钮,播放所有这些数据。因此我需要做的是将数据从 audioSampleBuffer 复制到 masterBuffer。有办法做到这一点吗?
最佳答案
AudioSampleBuffer
只是一个typedef
对于 AudioBuffer<float>
,可以找到其文档 here .在里面你会看到 copyFrom
成员函数。这个函数有几个重载,其中一个需要一个 AudioBuffer<T>
。作为它的源缓冲区。
访问 AudioSampleBuffer
因此您可以复制它,您必须执行以下操作之一:
- 将其公开(如果您在派生类型中,则将其保护)
- 创建一个 getter 函数
- 让其他类(class)成为 friend
- 使用同一个类的另一个实例来访问成员
值得问问自己这是否也是一个架构问题;可以通过更好的设计完全避免这个问题吗?
关于c++ - 将数据从一个 AudioSampleBuffer 复制到不同类中的另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34274881/