Actually, if you play the stop sound in toggleRecording() then it will end up being recorded. Can you do it in stopRecording() without waiting for the device storage event?