DuplicateSoundMem

既にメモリに読み込んである音データを使用するサウンドハンドルを新たに作成する( 非ストリームサウンドのみ )

val = DuplicateSoundMem(SrcSoundHandle)

int SoundHandle : 新たに作成するサウンドハンドルが使用する音データを持っているサウンドハンドル

(プラグイン / モジュール : DxLibW)

解説

この関数は既に LoadSoundMem 等の関数で読み込んだ音データと同じデータを使用する別のサウンドハンドルが必要になったときに使用する関数です。

例えば同じ音データを使用するキャラクターが複数居た場合、
効果音一つ一つの再生に細かく音量や停止のタイミングを決めたい場合は各キャラクター専用にサウンドハンドルを持たせたくなりますが、
キャラクターの数だけ LoadSoundMem を使用して音データをメモリに読み込むとロード時間が長くなり使用メモリも増大してしまいます。

そんなときは音データを LoadSoundMem でファイルから読み込むのは一回だけにして、
同じ音データを使用する別のサウンドハンドルが欲しいときにはその都度 DuplicateSoundMem を使用して LoadSoundMem で取得したサウンドハンドルと同じ音データを使用する別のサウンドハンドルを作成します、
こうすることで効果音の各再生毎に細かい設定や制御ができるようになり、且つ音データの読み込み時間の短縮と使用メモリの節約ができます。

尚、この関数で作成されたサウンドハンドルは LoadSoundMem で作成されたサウンドハンドルと音データを共有しているというだけで特別なサウンドハンドルというわけではありませんので、
通常のサウンドハンドルと同じく不要になったら DeleteSoundMem で削除してください。


注意!…

因みにこの関数は SetCreateSoundDataType でデフォルトタイプである DX_SOUNDDATATYPE_MEMNOPRESS 以外のストリーミングタイプの音データを指定した上で LoadSoundMem
で作成されたサウンドハンドルや、3分以上の長さのある音データから作成されたサウンドハンドルは DuplicateSoundMem の引数として渡すことはできません
※ DxLib のハンドル値は 32bit/64bit 共に int 型です。

戻り値:
  -1以外:サウンドハンドル

関連項目

LoadSoundMem音ファイルをメモリに読みこむ(DxLibW)
PlaySoundMemメモリに読みこんだ音データを再生する(DxLibW)
StopSoundMemメモリに読み込んだ音データの再生を止める(DxLibW)
DeleteSoundMemメモリに読みこんだ音データを削除する(DxLibW)
CheckSoundMemメモリに読みこんだ音データが再生中か調べる(DxLibW)
SetVolumeSoundMemサウンドハンドルのボリュームを設定する( 100分の1デシベル単位 0 ~ 10000 )(DxLibW)
InitSoundMemメモリに読みこんだ音データをすべて消去する(DxLibW)

情報

プラグイン / モジュールDxLibW
バージョン3.24f
作成日2026/04/12
著作者DxLib: Takumi Yamada / HSP binding: IronHSP Project
URLhttps://dxlib.xsrv.jp/
備考hspdxlib.as をインクルードして使用
タイプDxLib ゲームライブラリ
グループDxLib サウンド
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\hspdxlib.hs