diff --git a/src/Nazara/Audio/Sound.cpp b/src/Nazara/Audio/Sound.cpp index 192bbb96b..7198a01d6 100644 --- a/src/Nazara/Audio/Sound.cpp +++ b/src/Nazara/Audio/Sound.cpp @@ -49,10 +49,10 @@ namespace Nz UInt32 Sound::GetPlayingOffset() const { - ALfloat seconds = -1.f; - alGetSourcef(m_source, AL_SEC_OFFSET, &seconds); + ALint samples = 0; + alGetSourcei(m_source, AL_SAMPLE_OFFSET, &samples); - return static_cast(seconds*1000); + return static_cast(1000ULL * samples / m_buffer->GetSampleRate()); } SoundStatus Sound::GetStatus() const @@ -160,7 +160,7 @@ namespace Nz void Sound::SetPlayingOffset(UInt32 offset) { - alSourcef(m_source, AL_SEC_OFFSET, offset/1000.f); + alSourcei(m_source, AL_SAMPLE_OFFSET, static_cast(offset/1000.f * m_buffer->GetSampleRate())); } void Sound::Stop()