private void releaseInternal() {
        safeReleasePlayer(this.player);
        this.player = null;
        if (this.looperThreadDisposable != null) {
            this.looperThreadDisposable.dispose();
            this.looperThreadDisposable = null;
        }
        this.timeLastStartTimestamp = -1;
        this.timePassedBeforeLastStart = 0;
    }
Represents and manages one audio file or tone
main/src/main/java/cgeo/geocaching/utils/AudioManager.java