Fixes#11170 by introducing an intelligent thread.sleep (getting the duration of the sound, if possible, then wait the appropriate time for letting the sound play). By the way, the method to get the sound duration is not as easy as I thought.
Also fix a minor issue with the last volume not propertly saved.
And fix some minor warnings by using final local variable.
Signed-off-by: Gwendal ROULLEAU <gwendal.roulleau@gmail.com>