Skip to content

Commit 8000d7f

Browse files
authored
Fix audio leaking in builtin SDL_mixer
1 parent bf910d6 commit 8000d7f

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

src/library_sdl.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2817,6 +2817,7 @@ var LibrarySDL = {
28172817
Mix_ReserveChannels: (num) => {
28182818
SDL.channelMinimumNumber = num;
28192819
},
2820+
Mix_PlayChannelTimed__deps: ['Mix_HaltChannel'],
28202821
Mix_PlayChannelTimed__proxy: 'sync',
28212822
Mix_PlayChannelTimed: (channel, id, loops, ticks) => {
28222823
// TODO: handle fixed amount of N loops. Currently loops either 0 or infinite times.
@@ -2863,6 +2864,9 @@ var LibrarySDL = {
28632864
if (channelInfo.audio == this) { channelInfo.audio.paused = true; channelInfo.audio = null; }
28642865
if (SDL.channelFinished) {{{ makeDynCall('vi', 'SDL.channelFinished') }}}(channel);
28652866
}
2867+
if (channelInfo.audio) {
2868+
_Mix_HaltChannel(channel);
2869+
}
28662870
channelInfo.audio = audio;
28672871
// TODO: handle N loops. Behavior matches Mix_PlayMusic
28682872
audio.loop = loops != 0;

0 commit comments

Comments
 (0)