ご報告ありがとうございます
テストの為にこんなプログラムを組んでみました
#include "DxLib.h"
#define HANDLE_NUM 50
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
int Handle[ HANDLE_NUM ] ;
int HandleCount ;
int LoopCount ;
int i ;
// ウインドウモードで起動
ChangeWindowMode( TRUE );
// VSYNC待ちをしない
SetWaitVSyncFlag( FALSE ) ;
// DXライブラリの初期化
if( DxLib_Init() < 0 ) return -1;
// サウンドの読み込み
for( i = 0 ; i < HANDLE_NUM ; i ++ )
{
Handle[ i ] = LoadSoundMem( "Test.wav" ) ;
}
// 描画先を裏画面にする
SetDrawScreen( DX_SCREEN_BACK );
// ハンドルカウンタの初期化
HandleCount = 0 ;
// ループカウンタの初期化
LoopCount = 0 ;
// メインループ
while( ProcessMessage() == 0 )
{
// 画面の初期化
ClearDrawScreen();
// 音を鳴らす
PlaySoundMem( Handle[ HandleCount ], DX_PLAYTYPE_BACK ) ;
// ハンドルカウンタをインクリメント
HandleCount ++ ;
// 全ハンドルの再生が終わったらループ
if( HandleCount == HANDLE_NUM )
{
// ハンドルカウンタを初期化
HandleCount = 0 ;
// ループカウンタをインクリメント
LoopCount ++ ;
// ループ時に1回分余計に待つ
WaitTimer( 100 ) ;
}
// 現在のハンドルカウンタの値とループカウンタの値を描画
DrawFormatString( 0, 0, GetColor( 255,255,255 ), "HandleCount:%d LoopCount:%d", HandleCount, LoopCount ) ;
// 裏画面の内容を表画面に反映
ScreenFlip() ;
// 0.1秒待つ
WaitTimer( 100 ) ;
}
// DXライブラリの後始末
DxLib_End();
// ソフトの終了
return 0;
}
Test.wav( モノラルサウンド ) を読み込んだサウンドハンドルを50個用意して
0.1秒毎に0から順々に再生する、50個全部再生し終わったらループが分かりやすいように
0.1秒間の間を空けた後再度0個目から再生する、というのを繰り返すというプログラムです
最近特にサウンドプログラムには手を加えていませんが、Ver3.06c ではとりあえず
現象は発生しませんでした
こちらに私の環境でコンパイルした、現象が発生しないことの確認ができている
実行可能ファイルを自己解凍形式で圧縮したファイルをアップしましたので、
よろしければ sy(サイ)さんの環境でも現象が発生しないか試してみて頂けないでしょうか?
https://dxlib.xsrv.jp/file/PlaySoundTest.exe