Re: DuplicateSoundMemで作成したハンドルの後始末 ( No.1 ) |
- 名前:管理人 日時:2015/10/26 01:09
> MainメソッドでLoadSoundMemを読み込み、効果音を鳴らすたびにDuplicateSoundMemで音楽ハンドルを作成しているのですが
なぜ効果音を鳴らすたびに DuplicateSoundMem でハンドルを作成されているのでしょうか?
( LoadSoundMem で読み込んだハンドルを PlaySoundMem で再生すると何か問題があるのでしょうか? )
|
Re: DuplicateSoundMemで作成したハンドルの後始末 ( No.2 ) |
- 名前:名無し 日時:2015/10/26 16:34
LoadSoundMemで読み込んだハンドルをPlaySoundMemで再生すると、複数キャラがいた場合などに効果音の同時再生が出来ないので、DuplicateSoundMemで作成しています。
|
Re: DuplicateSoundMemで作成したハンドルの後始末 ( No.3 ) |
- 名前:管理人 日時:2015/10/27 01:32
DXライブラリのサウンドハンドルはデフォルトで3音まで同時に再生することができます
リファレンスには載っていませんが、LoadSoundMem の第二引数が最大同時再生数になっていますので、
この値を大きくすればその分同時に再生できる数を増やすことができます
( 同時再生可能数の数に応じて使用するメモリも若干増えますが・・・ )
// 16音同時再生ができるサウンドハンドルにする場合
int SoundHandle = LoadSoundMem( "Test.wav", 16 ) ;
よろしければお試しください
あと、最初のご質問のご返答ですが、DuplicateSoundMem を使用せずに、DuplicateSoundMem を使用して
作成したサウンドハンドルを使用してサウンドを再生したような効果を得られる関数はありません
ただ、再生終了後に自動的にサウンドハンドルを削除するための関数はあります
// サウンドハンドルの再生が終了したら自動的にハンドルを削除するかどうかを設定する
int SetPlayFinishDeleteSoundMem( int DeleteFlag, int SoundHandle ) ;
DuplicateSoundMem を使用して作成したサウンドハンドルに対して PlaySoundMem を実行する前に
SetPlayFinishDeleteSoundMem( TRUE, DupSoundHandle ) ;
を実行しておけば、再生の終了を監視して、再生が終了したら DeleteSoundMem で削除するという手間が省けます
よろしければお使いください m(_ _)m
|
Re: DuplicateSoundMemで作成したハンドルの後始末 ( No.4 ) |
- 名前:名無し 日時:2015/11/01 21:20
ありがとうございます。自動的に削除する関数があったのですね
助かりました
|