Package com.dianxin.tori.api.lavaplayer
Class AudioMixerSendHandler
java.lang.Object
com.dianxin.tori.api.lavaplayer.AudioMixerSendHandler
- All Implemented Interfaces:
net.dv8tion.jda.api.audio.AudioSendHandler
public class AudioMixerSendHandler
extends Object
implements net.dv8tion.jda.api.audio.AudioSendHandler
Audio mixer handler that combines multiple Lavaplayer audio sources into a single
audio stream for Discord transmission.
This class allows registering multiple audio players (e.g., music, TTS, sound effects)
on different channels and mixes their outputs together. It implements AudioSendHandler
to provide 20ms audio frames to JDA's audio system.
The mixing process:
- Collects audio frames from all registered players
- Sums the PCM samples (accumulation)
- Applies clipping to prevent audio distortion
- Converts the mixed signal back to byte format for transmission
Usage example:
AudioMixerSendHandler mixer = new AudioMixerSendHandler();
mixer.registerChannel("MUSIC", musicPlayer);
mixer.registerChannel("TTS", ttsPlayer);
audioConnection.setAudioSendHandler(mixer);
- See Also:
-
Field Summary
Fields inherited from interface net.dv8tion.jda.api.audio.AudioSendHandler
INPUT_FORMAT -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanbooleanisOpus()voidregisterChannel(String channelId, com.sedmelluq.discord.lavaplayer.player.AudioPlayer player) Registers an AudioPlayer to a specific channel.voidremoveChannel(String channelId)
-
Constructor Details
-
AudioMixerSendHandler
public AudioMixerSendHandler()
-
-
Method Details
-
registerChannel
public void registerChannel(String channelId, com.sedmelluq.discord.lavaplayer.player.AudioPlayer player) Registers an AudioPlayer to a specific channel.- Parameters:
channelId- Channel name (Ex: "MUSIC", "TTS")player- Lavaplayer AudioPlayer instance
-
removeChannel
-
canProvide
public boolean canProvide()- Specified by:
canProvidein interfacenet.dv8tion.jda.api.audio.AudioSendHandler
-
provide20MsAudio
- Specified by:
provide20MsAudioin interfacenet.dv8tion.jda.api.audio.AudioSendHandler
-
isOpus
public boolean isOpus()- Specified by:
isOpusin interfacenet.dv8tion.jda.api.audio.AudioSendHandler
-