将数据从一个 AudioSampleBuffer 复制到另一个 class
Copying data from one AudioSampleBuffer to another in a different class
我在两个单独的 classes 中有两个单独的 AudioSampleBuffer 对象。这是第一个 class 的私有部分,称为 TransportBar.h:
private:
Atomic<int> playState;
Atomic<int> soloState;
Atomic<int> muteState;
unsigned int bufferPosition;
AudioSampleBuffer masterBuffer;
static const int bufferSize = 352800; //constant
这里是 class 部分的私有部分,称为 Looper.h:
private:
//Shared data
Atomic<int> recordState;
Atomic<int> playState;
//Audio data
static const int bufferSize = 352800; //constant
unsigned int bufferPosition;
AudioSampleBuffer audioSampleBuffer;
我正在创建的应用程序有 4 个记录到 audioSampleBuffer 的轨道。然后我想要一个 "master" 播放按钮,播放所有这些数据。因此我需要做的是将数据从 audioSampleBuffer 复制到 masterBuffer。有办法吗?
AudioSampleBuffer
只是 AudioBuffer<float>
的 typedef
,可以找到其文档 here。在里面你会看到 copyFrom
成员函数。此函数有多个重载,其中一个将 AudioBuffer<T>
作为其源缓冲区。
要访问 AudioSampleBuffer
以便复制它,您必须执行以下操作之一:
- 使其成为 public(或者如果您处于派生类型中,则受保护)
- 创建一个 getter 函数
- 将另一个 class 加为朋友
- 使用相同的另一个实例class访问成员
值得问问自己这是否也是架构问题;可以通过更好的设计完全避免这个问题吗?
我在两个单独的 classes 中有两个单独的 AudioSampleBuffer 对象。这是第一个 class 的私有部分,称为 TransportBar.h:
private:
Atomic<int> playState;
Atomic<int> soloState;
Atomic<int> muteState;
unsigned int bufferPosition;
AudioSampleBuffer masterBuffer;
static const int bufferSize = 352800; //constant
这里是 class 部分的私有部分,称为 Looper.h:
private:
//Shared data
Atomic<int> recordState;
Atomic<int> playState;
//Audio data
static const int bufferSize = 352800; //constant
unsigned int bufferPosition;
AudioSampleBuffer audioSampleBuffer;
我正在创建的应用程序有 4 个记录到 audioSampleBuffer 的轨道。然后我想要一个 "master" 播放按钮,播放所有这些数据。因此我需要做的是将数据从 audioSampleBuffer 复制到 masterBuffer。有办法吗?
AudioSampleBuffer
只是 AudioBuffer<float>
的 typedef
,可以找到其文档 here。在里面你会看到 copyFrom
成员函数。此函数有多个重载,其中一个将 AudioBuffer<T>
作为其源缓冲区。
要访问 AudioSampleBuffer
以便复制它,您必须执行以下操作之一:
- 使其成为 public(或者如果您处于派生类型中,则受保护)
- 创建一个 getter 函数
- 将另一个 class 加为朋友
- 使用相同的另一个实例class访问成员
值得问问自己这是否也是架构问题;可以通过更好的设计完全避免这个问题吗?