This looks like this *might* leak memory in case the sound has been played by play(true), i.e. makeLoopingAudioStream returned an new LoopingAudioStream object.

Since makeLoopingAudioStream right now always takes ownership this needs a bit more annoying/unnatural handling on your side. An easy solution for now would be to simply create the looping audio stream object yourself (with DisposeAfterUse::NO) and then pass DisposeAfterUse::YES to playStream.