code: public void play() {
  
  		// if play button itself is null, the whole purpose of AudioWife is
  		// defeated.
  		if (mPlayButton == null) {
  			throw new IllegalStateException(ERROR_PLAYVIEW_NULL);
  		}
  
  		if (mUri == null) {
  			throw new IllegalStateException("Uri cannot be null. Call init() before calling this method");
  		}
  
  		if (mMediaPlayer == null) {
  			throw new IllegalStateException("Call init() before calling this method");
  		}
  
  		if (mMediaPlayer.isPlaying()) {
  			return;
  		}
  
  		mProgressUpdateHandler.postDelayed(mUpdateProgress, AUDIO_PROGRESS_UPDATE_TIME);
  
  		// enable visibility of all UI controls.
  		setViewsVisibility();
  
  		mMediaPlayer.start();
  
  		setPausable();
  	}
docs: *
  Starts playing audio file associated. Before playing the audio, visibility of appropriate UI
  controls is made visible. Calling this method has no effect if the audio is already being
  played.
  **