HMM.DLL は、パックされたファイルを直接扱うことができないので、エラーを引き起こす。
対策は、HMM.DLL の dsloadmemory を使いメモリから直接再生をさせる。
(HMM に入っていたサンプルでのやり方を参考)
あと、スクリプト(プログラム)終了時にHMM.DLL 開放処理を行っている。
これを明示的にしないと、タスクが残ったままになってしまうので、その対策。
#include "hmm.as"
#pack "sound1.wav"
#packopt name "hmm_test"
onexit *p_end
//HMM 初期化
dsinit
mes "DS_INIT : "+stat
//サウンドロード規約
fname = "sound1.wav"
exist fname
if strsize > 0 {
sdim buf, strsize
bload fname, buf, strsize
dsloadmemory buf, 0
mes "SND_LOAD : "+stat
} else {
dialog "not play wave !!"
}
//サウンド再生
dsplay 0
mes "SND_PLAY : "+stat
stop
*p_end
DSEND
DSRELEASE
end