ご報告の処理を以下のようなプログラムで再現してみたのですが、2つ目のサウンドハンドルを再生した際に
1つめのサウンドの内容が混入することはありませんでした
was-blue.0793さんが試されたプログラムとの差異はありますでしょうか?
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
int SoftSound1 ;
int SoftSound2 ;
int SoundHandle1 ;
int SoundHandle2 ;
LONGLONG SampleNum ;
int Ch1, Ch2 ;
// ウインドウモードで起動
ChangeWindowMode( TRUE ) ;
// DXライブラリの初期化
if( DxLib_Init() < 0 ) return -1 ;
// 描画先を裏画面にする
SetDrawScreen( DX_SCREEN_BACK ) ;
// 一つ目のサウンドデータの読み込み
SoftSound1 = LoadSoftSound( "24bitTestSound1.wav" ) ;
// 空のサウンドデータにコピー
SampleNum = GetSoftSoundSampleNum( SoftSound1 ) ;
SoftSound2 = MakeSoftSound( SoftSound1, GetSoftSoundSampleNum( SoftSound1 ) ) ;
for( int i = 0 ; i < SampleNum; i++ )
{
ReadSoftSoundData( SoftSound1, i, &Ch1, &Ch2 ) ;
WriteSoftSoundData( SoftSound2, i, Ch1, Ch2 ) ;
}
// 一つ目のサウンドハンドルの作成
SoundHandle1 = LoadSoundMemFromSoftSound( SoftSound2 ) ;
// 一つ目のサウンドデータを破棄
DeleteSoftSound( SoftSound1 ) ;
DeleteSoftSound( SoftSound2 ) ;
// 二つ目のサウンドデータの読み込み
SoftSound1 = LoadSoftSound( "24bitTestSound2.wav" ) ;
// 空のサウンドデータにコピー
SampleNum = GetSoftSoundSampleNum( SoftSound1 ) ;
SoftSound2 = MakeSoftSound( SoftSound1, GetSoftSoundSampleNum( SoftSound1 ) ) ;
for( int i = 0 ; i < SampleNum; i++ )
{
ReadSoftSoundData( SoftSound1, i, &Ch1, &Ch2 ) ;
WriteSoftSoundData( SoftSound2, i, Ch1, Ch2 ) ;
}
// 二つ目のサウンドハンドルの作成
SoundHandle2 = LoadSoundMemFromSoftSound( SoftSound2 ) ;
// 二つ目のサウンドデータを破棄
DeleteSoftSound( SoftSound1 ) ;
DeleteSoftSound( SoftSound2 ) ;
// 二つ目のサウンドハンドルを再生
PlaySoundMem( SoundHandle2, DX_PLAYTYPE_LOOP ) ;
// キー入力待ち
WaitKey() ;
// DXライブラリの後始末
DxLib_End() ;
// ソフトの終了
return 0 ;
}