diff options
| author | raysan5 <raysan5@gmail.com> | 2017-03-05 10:55:58 +0100 |
|---|---|---|
| committer | raysan5 <raysan5@gmail.com> | 2017-03-05 10:55:58 +0100 |
| commit | 203d1a154eb5b78fc5f56e9dead04c3a89bcd39e (patch) | |
| tree | 26627cd712260dc7873ffec8cdb2c74189b2c5d5 /src | |
| parent | 9cfaa81a7e7741f03db1f9579aa0b49bee42cdd7 (diff) | |
| download | raylib-203d1a154eb5b78fc5f56e9dead04c3a89bcd39e.tar.gz raylib-203d1a154eb5b78fc5f56e9dead04c3a89bcd39e.zip | |
Clear music buffers on stop
Diffstat (limited to 'src')
| -rw-r--r-- | src/audio.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/audio.c b/src/audio.c index 128781a4..659ead0f 100644 --- a/src/audio.c +++ b/src/audio.c @@ -762,7 +762,18 @@ void ResumeMusicStream(Music music) void StopMusicStream(Music music) { alSourceStop(music->stream.source); + + // Clear stream buffers + void *pcm = calloc(AUDIO_BUFFER_SIZE*music->stream.sampleSize/8*music->stream.channels, 1); + for (int i = 0; i < MAX_STREAM_BUFFERS; i++) + { + alBufferData(music->stream.buffers[i], music->stream.format, pcm, AUDIO_BUFFER_SIZE*music->stream.sampleSize/8*music->stream.channels, music->stream.sampleRate); + } + + free(pcm); + + // Restart music context switch (music->ctxType) { case MUSIC_AUDIO_OGG: stb_vorbis_seek_start(music->ctxOgg); break; |
