同一サウンドの同時再生
DSTLC-V.S.I.N 2016/05/28(Sat) 11:15
申し訳ありませんが長文になります。
サウンドの再生についてです。
同じサウンドデータを多重再生することを検討しています。
例えば、A.mp3というサウンドデータがあるとします。
このA.mp3を、まずは普通に再生し、その5秒後に同じA.mp3を重ねて多重再生するとします。
これを実現しようと、まず以下のコードを実行してみました。
Sound a1(L"A.mp3");
Sound a2(a1);
while(System::Update()){
if (System::FrameCount() == 1)
a1.play();
else if (System::FrameCount() == 300) // 60FPS * 5秒 = 300フレーム
a2.play();
}
これを実行したところ、a1とa2が同じとみなされて、a2のplayは動作しませんでした。(既に再生中なので)
試しに「a2.play()」を「a2.stop()」とすると、やはりサウンドは停止してしまいました。
ここで、宣言部の「Sound a2(a1)」を「Sound a2(L"A.mp3")」とすれば問題は解決しますが、内部で2重にメモリ確保されてしまい効率が悪いです。
後から再生の制御をする可能性があるため、playMultiを使うことはできません。
何とか、2重ロードせず、playMultiを使わずに多重再生を行う方法はないでしょうか?