mirror of
https://github.com/raysan5/raylib.git
synced 2025-12-15 19:05:34 +00:00
SeekMusicStream initial implementation (#2006)
This commit is contained in:
22
src/raudio.c
22
src/raudio.c
@@ -1656,6 +1656,28 @@ void StopMusicStream(Music music)
|
||||
}
|
||||
}
|
||||
|
||||
// Seek music to a certain position (in seconds)
|
||||
void SeekMusicStream(Music music, float position)
|
||||
{
|
||||
unsigned int positionInFrames = (unsigned int)(position * music.stream.sampleRate);
|
||||
switch (music.ctxType)
|
||||
{
|
||||
#if defined(SUPPORT_FILEFORMAT_WAV)
|
||||
case MUSIC_AUDIO_WAV: drwav_seek_to_pcm_frame((drwav *)music.ctxData, positionInFrames); break;
|
||||
#endif
|
||||
#if defined(SUPPORT_FILEFORMAT_OGG)
|
||||
case MUSIC_AUDIO_OGG: stb_vorbis_seek_frame((stb_vorbis *)music.ctxData, positionInFrames); break;
|
||||
#endif
|
||||
#if defined(SUPPORT_FILEFORMAT_FLAC)
|
||||
case MUSIC_AUDIO_FLAC: drflac_seek_to_pcm_frame((drflac *)music.ctxData, positionInFrames); break;
|
||||
#endif
|
||||
#if defined(SUPPORT_FILEFORMAT_MP3)
|
||||
case MUSIC_AUDIO_MP3: drmp3_seek_to_pcm_frame((drmp3 *)music.ctxData, positionInFrames); break;
|
||||
#endif
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
||||
// Update (re-fill) music buffers if data already processed
|
||||
void UpdateMusicStream(Music music)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user