private Main() { this.musicManagers = new HashMap<>(); this.playerManager = new DefaultAudioPlayerManager(); AudioSourceManagers.registerRemoteSources(playerManager); AudioSourceManagers.registerLocalSource(playerManager); }
@Override public AudioPlayer createPlayer() { return new StreamAudioPlayer(super.createPlayer(), this); }
public static void init() { AudioSourceManagers.registerRemoteSources(playerManager); playerManager.getConfiguration().setResamplingQuality(AudioConfiguration.ResamplingQuality.HIGH); playerManager.getConfiguration().setOpusEncodingQuality(AudioConfiguration.OPUS_QUALITY_MAX); }
private Callable<Void> createItemLoader(final String identifier, final AudioLoadResultHandler resultHandler) { return () -> { boolean[] reported = new boolean[1]; try { if (!checkSourcesForItem(new AudioReference(identifier, null), resultHandler, reported)) { log.debug("No matches for track with identifier {}.", identifier); resultHandler.noMatches(); } } catch (Throwable throwable) { if (reported[0]) { log.warn("Load result handler for {} threw an exception", identifier, throwable); } else { dispatchItemLoadFailure(identifier, resultHandler, throwable); } ExceptionTools.rethrowErrors(throwable); } return null; }; }
manager.executeTrack(this, newTrack, manager.getConfiguration(), options); return true;
@Override public Future<Void> loadItemOrdered(Object orderingKey, String identifier, AudioLoadResultHandler resultHandler) { if (loadFromStream(identifier, resultHandler)) { // This bypasses the ordering but oh well. return ExecutorTools.COMPLETED_VOID; } return super.loadItemOrdered(orderingKey, identifier, resultHandler); }
private boolean checkSourcesForItem(AudioReference reference, AudioLoadResultHandler resultHandler, boolean[] reported) { AudioReference currentReference = reference; for (int redirects = 0; redirects < MAXIMUM_LOAD_REDIRECTS && currentReference.identifier != null; redirects++) { AudioItem item = checkSourcesForItemOnce(currentReference, resultHandler, reported); if (item == null) { return false; } else if (!(item instanceof AudioReference)) { return true; } currentReference = (AudioReference) item; } return false; }
@Override public AudioPlayer createPlayer() { AudioPlayer player = constructPlayer(); player.addListener(lifecycleManager); if (remoteNodeManager.isEnabled()) { player.addListener(remoteNodeManager); } return player; }
playerManager.loadItemOrdered(player, trackToAdd.youtubecode, new AudioLoadResultHandler() { @Override public void trackLoaded(AudioTrack track) {
private Main() { this.musicManagers = new HashMap<>(); this.playerManager = new DefaultAudioPlayerManager(); AudioSourceManagers.registerRemoteSources(playerManager); AudioSourceManagers.registerLocalSource(playerManager); }
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); } }
public AudioPlayerManager getPlayerManager() { if (playerManager == null) { playerManager = registerSourceManagers(new DefaultAudioPlayerManager()); playerManager.getConfiguration().setResamplingQuality( AudioConfiguration.ResamplingQuality.valueOf( avaire.getConfig().getString("audio-quality.resampling", "medium").toUpperCase() ) ); playerManager.getConfiguration().setOpusEncodingQuality( avaire.getConfig().getInt("audio-quality.encoding", AudioConfiguration.OPUS_QUALITY_MAX) ); if (LavalinkManager.LavalinkManagerHolder.lavalink.isEnabled()) { playerManager.enableGcMonitoring(); } playerManager.setFrameBufferDuration(1000); playerManager.setItemLoaderThreadPoolSize(500); AudioSourceManagers.registerRemoteSources(playerManager); AudioSourceManagers.registerLocalSource(playerManager); } return playerManager; }
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<>(); }
CommandManager(MusicBot bot) { AudioPlayerManager playerManager = new DefaultAudioPlayerManager();