mirror of
https://github.com/raysan5/raylib.git
synced 2025-09-06 03:18:14 +00:00
GetMusicTimePlayed fix for music shorter than buffer size
This commit is contained in:
@@ -2086,8 +2086,12 @@ float GetMusicTimePlayed(Music music)
|
||||
int subBufferSize = (int)music.stream.buffer->sizeInFrames/2;
|
||||
int framesInFirstBuffer = music.stream.buffer->isSubBufferProcessed[0]? 0 : subBufferSize;
|
||||
int framesInSecondBuffer = music.stream.buffer->isSubBufferProcessed[1]? 0 : subBufferSize;
|
||||
int framesInBuffers = framesInFirstBuffer + framesInSecondBuffer;
|
||||
if (framesInBuffers > music.frameCount) {
|
||||
if (!music.looping) framesInBuffers = music.frameCount;
|
||||
}
|
||||
int framesSentToMix = music.stream.buffer->frameCursorPos%subBufferSize;
|
||||
int framesPlayed = (framesProcessed - framesInFirstBuffer - framesInSecondBuffer + framesSentToMix)%(int)music.frameCount;
|
||||
int framesPlayed = (framesProcessed - framesInBuffers + framesSentToMix)%(int)music.frameCount;
|
||||
if (framesPlayed < 0) framesPlayed += music.frameCount;
|
||||
secondsPlayed = (float)framesPlayed/music.stream.sampleRate;
|
||||
ma_mutex_unlock(&AUDIO.System.lock);
|
||||
|
Reference in New Issue
Block a user