Why doesn't the sound play when called from a public method?