@Override public AudioPlayer createPlayer() { return new StreamAudioPlayer(super.createPlayer(), this); }
public StreamInstance.Cursor openTrack(AudioTrack track, Consumer<StreamInstance.Cursor> detachListener) { synchronized (streams) { StreamInstance instance = streams.get(track.getIdentifier()); if (instance != null) { StreamInstance.Cursor cursor = instance.createCursor(detachListener); if (cursor != null) { return cursor; } else { streams.remove(track.getIdentifier()); } } if (!condition.test(track)) { return null; } instance = new StreamInstance(track, super.createPlayer(), streamFrameCount); streams.put(track.getIdentifier(), instance); return instance.createCursor(detachListener); } }
private MusicPlayerHandler(Guild guild, DiscordBot bot) { rng = new Random(); AudioManager guildManager = guild.getAudioManager(); player = playerManager.createPlayer(); this.bot = bot; this.guildId = guild.getIdLong(); guildManager.setSendingHandler(new AudioPlayerSendHandler(player)); queue = new LinkedList<>(); scheduler = new TrackScheduler(player); player.addListener(scheduler); player.setVolume(Integer.parseInt(GuildSettings.get(guild.getIdLong()).getOrDefault(GSetting.MUSIC_VOLUME))); playerInstances.put(guild.getIdLong(), this); int savedPlaylist = Integer.parseInt(GuildSettings.get(guild.getIdLong()).getOrDefault(GSetting.MUSIC_PLAYLIST_ID)); if (savedPlaylist > 0) { playlist = CPlaylist.findById(savedPlaylist); } if (savedPlaylist == 0 || playlist.id == 0) { playlist = CPlaylist.getGlobalList(); } activePlayListId = playlist.id; skipVotes = new HashSet<>(); }