X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Flibgame%2Fsound.c;h=0434b5539c40e61971dc2fe2b80adf1c017b82ad;hp=ed50734bacf0e1ce5f5ba8b360b6f1f7a82af186;hb=d7c2e950f49481d2cff5657a53519535c24d1c24;hpb=fb04dd34fca520cfcac737fc1352a807331ea72d diff --git a/src/libgame/sound.c b/src/libgame/sound.c index ed50734b..0434b553 100644 --- a/src/libgame/sound.c +++ b/src/libgame/sound.c @@ -131,6 +131,7 @@ static void ReloadCustomMusic(void); static void FreeSound(void *); static void FreeMusic(void *); static void FreeAllMusic_NoConf(void); +static void Mixer_StopMusicChannel(void); static SoundInfo *getSoundInfoEntryFromSoundID(int); static MusicInfo *getMusicInfoEntryFromMusicID(int); @@ -223,6 +224,10 @@ static void Mixer_PlayMusicChannel(void) { int loops = (IS_LOOP(mixer[audio.music_channel]) ? -1 : 1); + // stopping music channel before playing next track seems to be needed to + // prevent audio problems that may occur when playing MP3 files on Windows + Mixer_StopMusicChannel(); + // use short fade-in to prevent "plop" sound for certain music files // (this may happen when switching on music while playing the game) Mix_VolumeMusic(mixer[audio.music_channel].volume);