code: public void setAudioFile(final String audioFilePath){
          if (audioFilePath==null || audioFilePath.trim().isEmpty()){
              throw new IllegalArgumentException("audioFile cannot be null, empty, blank, or directory");
          }
          else if (currentAudioState.get()!=PREPARED_STATE && currentAudioState.get()!=INITIALIZED_STATE ){
              throw new IllegalStateException("Recorder cannot have its file changed when it is not in an initialized or prepared state");
          }
          String modifiedAudioFilePath=audioFilePath;
          if (modifiedAudioFilePath.toLowerCase(Locale.getDefault()).contains(".")){
              final String subString=modifiedAudioFilePath.substring(modifiedAudioFilePath.lastIndexOf("."));
              modifiedAudioFilePath=modifiedAudioFilePath.replace(subString,".temp");
          }
          else {
              modifiedAudioFilePath=modifiedAudioFilePath+".temp";
          }
          this.audioFile=modifiedAudioFilePath;
          currentAudioState.getAndSet(PREPARED_STATE);
      }
docs: Setter for the audioFile. If the file does not contain a .wav suffix, it will be added. If the file has a suffix other than .wav, it will be removed. This API puts it in the prepared state.
  NOTE: The .wav file does not exist until the stop recording (and subsequent conversion) is completed. Where the data is stored temporarily is the same path and name just with .temp instead of .wav.
  @param audioFilePath A fully qualified file path for the audio file to be stored. The file path should exist and the file should not, errors can occur during writing.
  @throws IllegalArgumentException if the parameter is null, empty, blank.
  @throws IllegalStateException If the API is called while the recorder is not initialized or prepared.