with openal i believe you have to manually remember to dequeue the buffers, which means you have to add it in your update loop.
that's ultimately the reason i replaced openal with my own library, because mine doesn't require an update loop at all to dequeue buffers, it just requires a callback