HandieBot/src/main/java/handiebot/lavaplayer/AudioProvider.java

53 lines
1.2 KiB
Java

package handiebot.lavaplayer;
import com.sedmelluq.discord.lavaplayer.player.AudioPlayer;
import com.sedmelluq.discord.lavaplayer.track.playback.AudioFrame;
import sx.blah.discord.handle.audio.AudioEncodingType;
import sx.blah.discord.handle.audio.IAudioProvider;
/**
* Created by Andrew's Computer on 18-Jun-17.
*/
public class AudioProvider implements IAudioProvider {
private final AudioPlayer audioPlayer;
private AudioFrame lastFrame;
/**
* @param audioPlayer Audio player to wrap.
*/
public AudioProvider(AudioPlayer audioPlayer) {
this.audioPlayer = audioPlayer;
}
@Override
public boolean isReady() {
if (lastFrame == null) {
lastFrame = audioPlayer.provide();
}
return lastFrame != null;
}
@Override
public byte[] provide() {
if (lastFrame == null) {
lastFrame = audioPlayer.provide();
}
byte[] data = lastFrame != null ? lastFrame.data : null;
lastFrame = null;
return data;
}
@Override
public int getChannels() {
return 2;
}
@Override
public AudioEncodingType getAudioEncodingType() {
return AudioEncodingType.OPUS;
}
}