#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
int SHandle, SHandle2;
ChangeWindowMode(TRUE);
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{
return -1; // エラーが起きたら直ちに終了
}
// test.wavのメモリへの読み込みサウンドハンドルをSHandleに保存します
SHandle = LoadSoundMem( "SE1.wav" ) ;
SetLoopPosSoundMem(0, SHandle);
// 読みこんだ音をノーマル再生します(『PlaySoundMem』関数使用)
PlaySoundMem( SHandle , DX_PLAYTYPE_LOOP ) ;
WaitTimer( 5000 ) ;
SHandle2 = LoadSoundMem( "SE2.wav" ) ;
WaitTimer( 5000 ) ;
if(StopSoundMem(SHandle))
{
MessageBox(NULL, L"error", NULL, NULL);
}
PlaySoundMem( SHandle2 , DX_PLAYTYPE_LOOP ) ;
WaitTimer( 5000 ) ;
return DxLib_End();
}
上記のプログラムのように
SetLoopPosSoundMem
でループ位置を指定した音楽を再生している際に、他の音楽をロードしようとするとエラーが発生します。
ロードの前に再生中の音楽を止めてからロードを行うとエラーなくロードすることが出来ました。
これは仕様上の誓約なのでしょうか?