Class AudioModuleConfig

java.lang.Object
net.dv8tion.jda.api.audio.AudioModuleConfig

public class AudioModuleConfig extends Object
Configuration for audio features in JDA.

This config is immutable, any updates to the config return a new config instance.

Example

jdaBuilder.setAudioModuleConfig(
  new AudioModuleConfig()
    .withAudioSendFactory(new NativeAudioSendFactory())
    .withDaveSessionFactory(new JDaveSessionFactory())
)
See Also:
  • Constructor Details

    • AudioModuleConfig

      public AudioModuleConfig()
  • Method Details

    • getDaveSessionFactory

      @Nonnull public DaveSessionFactory getDaveSessionFactory()
      The factory used for DAVE sessions.

      Each audio / video connection on Discord requires End-to-End Encryption using the "Discord Audio & Video End-to-End Encryption" (DAVE) Protocol. The DaveSession provided by this factory is responsible for managing this protocol for each connection. By default, JDA does not implement this protocol.

      Returns:
      DaveSessionFactory
      See Also:
    • withDaveSessionFactory

      @Nonnull @Contract("_ -> new") @CheckReturnValue public AudioModuleConfig withDaveSessionFactory(@Nonnull DaveSessionFactory daveSessionFactory)
      The factory used for DAVE sessions.

      Each audio / video connection on Discord requires End-to-End Encryption using the "Discord Audio & Video End-to-End Encryption" (DAVE) Protocol. The DaveSession provided by this factory is responsible for managing this protocol for each connection. By default, JDA does not implement this protocol.

      Parameters:
      daveSessionFactory - The dave session factory to use
      Returns:
      A new AudioModuleConfig with the provided factory
      Throws:
      IllegalArgumentException - If null is provided
      See Also:
    • getAudioSendFactory

      @Nonnull public IAudioSendFactory getAudioSendFactory()
      The currently configured IAudioSendFactory.
      Returns:
      IAudioSendFactory
      See Also:
    • withAudioSendFactory

      @Nonnull @Contract("_ -> new") @CheckReturnValue public AudioModuleConfig withAudioSendFactory(@Nonnull IAudioSendFactory audioSendFactory)
      Changes the factory used to create IAudioSendSystem objects which handle the sending loop for audio packets.
      By default, JDA uses DefaultSendFactory.
      Parameters:
      audioSendFactory - The new IAudioSendFactory to be used when creating new IAudioSendSystem objects.
      Returns:
      A new AudioModuleConfig with the provided factory