Skip to content

alSourcePause + alSourcePlay does not resume from paused offset (resets playback to start) #39

@hwnzy

Description

@hwnzy

SDL: 3.4.0

This issue occurs when playing actual audio files, the offset is reported correctly but not respected by the mixer thread, causing resume to restart playback instead of continuing.
Here are the related functions from my program:

void audio_play(AudioSource *audio_source)
{
    alSourcef(audio_source->source, AL_GAIN, audio_source->volume);
    alSourcef(audio_source->source, AL_PITCH, audio_source->pitch);
    alSourcei(audio_source->source, AL_LOOPING, audio_source->isLooped);
    alSourcePlay(audio_source->source);
}

void audio_pause(AudioSource *audio_source)
{
    alSourcePause(audio_source->source);
}

void audio_resume(AudioSource *audio_source)
{
    ALint state;
    alGetSourcei(audio_source->source, AL_SOURCE_STATE, &state);
    if (state == AL_PAUSED)
    {
        alSourcePlay(audio_source->source);
    }
}

void audio_stop(AudioSource *audio_source)
{
    alSourceStop(audio_source->source);
}

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions