import com.sedmelluq.discord.lavaplayer.player.AudioPlayer;
import com.sedmelluq.discord.lavaplayer.track.playback.AudioFrame;
import net.dv8tion.jda.api.audio.AudioSendHandler;
import java.nio.ByteBuffer;
public class AudioForwarder implements AudioSendHandler {
private final AudioPlayer player;
private AudioFrame lastFrame;
public AudioForwarder(AudioPlayer player) {
this.player = player;
}
@Override
public boolean canProvide() {
lastFrame = player.provide();
return lastFrame != null;
}
@Override
public ByteBuffer provide20MsAudio() {
return ByteBuffer.wrap(lastFrame.getData());
}
@Override
public boolean isOpus() {
return true;
}
}
import com.sedmelluq.discord.lavaplayer.player.AudioPlayer;
import com.sedmelluq.discord.lavaplayer.player.AudioPlayerManager;
public class GuildMusicManager {
private final TrackScheduler trackScheduler;
private final AudioForwarder audioForwarder;
private long playerMessageID;
private long queueMessageID;
public GuildMusicManager(AudioPlayerManager manager) {
AudioPlayer player = manager.createPlayer();
trackScheduler = new TrackScheduler(player);
player.addListener(trackScheduler);
audioForwarder = new AudioForwarder(player);
}
public TrackScheduler getTrackScheduler() {
return trackScheduler;
}
public AudioForwarder getAudioForwarder() {
return audioForwarder;
}
}