同一サウンドの同時再生
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を使わずに多重再生を行う方法はないでしょうか?
記事編集
Reputeless  2016/05/28(Sat) 14:11
playMulti しか方法はありません。
機能の追加を検討します。
編集
件名
Re: 同一サウンドの同時再生
名前
コメント
画像添付


投稿修正キー (投稿を修正する時に使います)
画像認証 (右画像の数字を入力) 投稿キー

- WEB PATIO -