code: public ApnsPayloadBuilder setSound(final String soundFileName, final boolean isCriticalAlert, final double soundVolume) {
          Objects.requireNonNull(soundFileName, "Sound file name must not be null.");
  
          if (soundVolume < 0 || soundVolume > 1) {
              throw new IllegalArgumentException("Sound volume must be between 0.0 and 1.0 (inclusive).");
          }
  
          this.soundFileName = null;
          this.soundForCriticalAlert = new SoundForCriticalAlert(soundFileName, isCriticalAlert, soundVolume);
  
          return this;
      }
docs: <p>Sets the name of the sound file to play when the push notification is received along with its volume and
  whether it should be presented as a critical alert. According to Apple's documentation, the sound filename
  should be:</p>
  
  <blockquote>The name of a sound file in your app’s main bundle or in the {@code Library/Sounds} folder of your
  app’s container directory.</blockquote>
  
  <p>By default, no sound is included in the push notification.</p>
  
  <p>To explicitly specify that no sound should be played as part of this notification, use
  {@link #setSound(String)} with a {@code null} sound filename.</p>
  
  @param soundFileName the name of the sound file to play; must not be {@code null}
  @param isCriticalAlert specifies whether this sound should be played as a "critical alert"
  @param soundVolume the volume at which to play the sound; must be between 0.0 (silent) and 1.0 (loudest)
  
  @return a reference to this payload builder
  
  @see ApnsPayloadBuilder#DEFAULT_SOUND_FILENAME
  
  @since 0.13.3