1

2 つの別個のクラスに 2 つの別個の AudioSampleBuffer オブジェクトがあります。以下は、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:  
//Shared data
Atomic<int> recordState;
Atomic<int> playState;

//Audio data
static const int bufferSize = 352800; //constant
unsigned int bufferPosition;
AudioSampleBuffer audioSampleBuffer;

私が作成しているアプリケーションには、audioSampleBuffer に記録する 4 つのトラックがあります。次に、このすべてのデータを再生する「マスター」再生ボタンが必要です。そのため、データを audioSampleBuffer から masterBuffer にコピーする必要があります。これを行う方法はありますか?

4

1 に答える 1

2

AudioSampleBufferは単なるtypedefforAudioBuffer<float>であり、ドキュメントはここにあります。その中にcopyFromメンバー関数が表示されます。この関数にはいくつかのオーバーロードがあり、AudioBuffer<T>そのうちの 1 つはソース バッファーとして を受け取ります。

にアクセスしてAudioSampleBufferコピーできるようにするには、次のいずれかを実行する必要があります。

  • 公開する (または派生型の場合は保護する)
  • ゲッター関数を作成する
  • 他のクラスを友達にする
  • 同じクラスの別のインスタンスを使用してメンバーにアクセスする

これもアーキテクチャ上の問題なのかどうかを自問する価値があります。この問題は、より良い設計で完全に回避できたでしょうか?

于 2015-12-15T11:23:09.607 に答える