Search in sources :

Example 56 with FriendlyException

use of com.sedmelluq.discord.lavaplayer.tools.FriendlyException in project lavaplayer by sedmelluq.

the class NicoAudioSourceManager method loadTrack.

private AudioTrack loadTrack(String videoId) {
    checkLoggedIn();
    try (HttpInterface httpInterface = getHttpInterface()) {
        try (CloseableHttpResponse response = httpInterface.execute(new HttpGet("http://ext.nicovideo.jp/api/getthumbinfo/" + videoId))) {
            int statusCode = response.getStatusLine().getStatusCode();
            if (!HttpClientTools.isSuccessWithContent(statusCode)) {
                throw new IOException("Unexpected response code from video info: " + statusCode);
            }
            Document document = Jsoup.parse(response.getEntity().getContent(), StandardCharsets.UTF_8.name(), "", Parser.xmlParser());
            return extractTrackFromXml(videoId, document);
        }
    } catch (IOException e) {
        throw new FriendlyException("Error occurred when extracting video info.", SUSPICIOUS, e);
    }
}
Also used : HttpInterface(com.sedmelluq.discord.lavaplayer.tools.io.HttpInterface) HttpGet(org.apache.http.client.methods.HttpGet) CloseableHttpResponse(org.apache.http.client.methods.CloseableHttpResponse) IOException(java.io.IOException) Document(org.jsoup.nodes.Document) FriendlyException(com.sedmelluq.discord.lavaplayer.tools.FriendlyException)

Example 57 with FriendlyException

use of com.sedmelluq.discord.lavaplayer.tools.FriendlyException in project lavaplayer by sedmelluq.

the class MpegAudioTrack method process.

@Override
public void process(LocalAudioTrackExecutor localExecutor) {
    MpegFileLoader file = new MpegFileLoader(inputStream);
    file.parseHeaders();
    MpegTrackConsumer trackConsumer = loadAudioTrack(file, localExecutor.getProcessingContext());
    try {
        MpegFileTrackProvider fileReader = file.loadReader(trackConsumer);
        if (fileReader == null) {
            throw new FriendlyException("Unknown MP4 format.", SUSPICIOUS, null);
        }
        accurateDuration.set(fileReader.getDuration());
        localExecutor.executeProcessingLoop(fileReader::provideFrames, fileReader::seekToTimecode);
    } finally {
        trackConsumer.close();
    }
}
Also used : MpegFileTrackProvider(com.sedmelluq.discord.lavaplayer.container.mpeg.reader.MpegFileTrackProvider) FriendlyException(com.sedmelluq.discord.lavaplayer.tools.FriendlyException)

Example 58 with FriendlyException

use of com.sedmelluq.discord.lavaplayer.tools.FriendlyException in project lavaplayer by sedmelluq.

the class Main method loadAndPlay.

private void loadAndPlay(TextChannel channel, final String trackUrl) {
    GuildMusicManager musicManager = getGuildAudioPlayer(channel.getGuild().block());
    playerManager.loadItemOrdered(musicManager, trackUrl, new AudioLoadResultHandler() {

        @Override
        public void trackLoaded(AudioTrack track) {
            sendMessageToChannel(channel, "Adding to queue " + track.getInfo().title);
            play(channel.getGuild().block(), musicManager, track);
        }

        @Override
        public void playlistLoaded(AudioPlaylist playlist) {
            AudioTrack firstTrack = playlist.getSelectedTrack();
            if (firstTrack == null) {
                firstTrack = playlist.getTracks().get(0);
            }
            sendMessageToChannel(channel, "Adding to queue " + firstTrack.getInfo().title + " (first track of playlist " + playlist.getName() + ")");
            play(channel.getGuild().block(), musicManager, firstTrack);
        }

        @Override
        public void noMatches() {
            sendMessageToChannel(channel, "Nothing found by " + trackUrl);
        }

        @Override
        public void loadFailed(FriendlyException exception) {
            sendMessageToChannel(channel, "Could not play: " + exception.getMessage());
        }
    });
}
Also used : AudioLoadResultHandler(com.sedmelluq.discord.lavaplayer.player.AudioLoadResultHandler) AudioTrack(com.sedmelluq.discord.lavaplayer.track.AudioTrack) AudioPlaylist(com.sedmelluq.discord.lavaplayer.track.AudioPlaylist) FriendlyException(com.sedmelluq.discord.lavaplayer.tools.FriendlyException)

Example 59 with FriendlyException

use of com.sedmelluq.discord.lavaplayer.tools.FriendlyException in project lavaplayer by sedmelluq.

the class LocalAudioTrackExecutor method handlePlaybackInterrupt.

private boolean handlePlaybackInterrupt(InterruptedException interruption, SeekExecutor seekExecutor) {
    Thread.interrupted();
    if (checkStopped()) {
        markerTracker.trigger(STOPPED);
        return false;
    }
    SeekResult seekResult = checkPendingSeek(seekExecutor);
    if (seekResult != SeekResult.NO_SEEK) {
        // Double-check, might have received a stop request while seeking
        if (checkStopped()) {
            markerTracker.trigger(STOPPED);
            return false;
        } else {
            return seekResult == SeekResult.INTERNAL_SEEK;
        }
    } else if (interruption != null) {
        Thread.currentThread().interrupt();
        throw new FriendlyException("The track was unexpectedly terminated.", SUSPICIOUS, interruption);
    } else {
        return true;
    }
}
Also used : FriendlyException(com.sedmelluq.discord.lavaplayer.tools.FriendlyException)

Example 60 with FriendlyException

use of com.sedmelluq.discord.lavaplayer.tools.FriendlyException in project lavaplayer by sedmelluq.

the class DefaultAudioPlayerManager method handleLoadRejected.

private Future<Void> handleLoadRejected(String identifier, AudioLoadResultHandler resultHandler, RejectedExecutionException e) {
    FriendlyException exception = new FriendlyException("Cannot queue loading a track, queue is full.", SUSPICIOUS, e);
    ExceptionTools.log(log, exception, "queueing item " + identifier);
    resultHandler.loadFailed(exception);
    return ExecutorTools.COMPLETED_VOID;
}
Also used : FriendlyException(com.sedmelluq.discord.lavaplayer.tools.FriendlyException)

Aggregations

FriendlyException (com.sedmelluq.discord.lavaplayer.tools.FriendlyException)62 IOException (java.io.IOException)23 AudioTrack (com.sedmelluq.discord.lavaplayer.track.AudioTrack)18 CloseableHttpResponse (org.apache.http.client.methods.CloseableHttpResponse)13 AudioLoadResultHandler (com.sedmelluq.discord.lavaplayer.player.AudioLoadResultHandler)12 JsonBrowser (com.sedmelluq.discord.lavaplayer.tools.JsonBrowser)12 AudioPlaylist (com.sedmelluq.discord.lavaplayer.track.AudioPlaylist)12 ArrayList (java.util.ArrayList)10 HttpGet (org.apache.http.client.methods.HttpGet)10 List (java.util.List)7 HttpInterface (com.sedmelluq.discord.lavaplayer.tools.io.HttpInterface)6 BasicAudioPlaylist (com.sedmelluq.discord.lavaplayer.track.BasicAudioPlaylist)5 URI (java.net.URI)4 URISyntaxException (java.net.URISyntaxException)4 MediaContainerHints (com.sedmelluq.discord.lavaplayer.container.MediaContainerHints)3 PersistentHttpStream (com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream)3 AudioReference (com.sedmelluq.discord.lavaplayer.track.AudioReference)3 AudioTrackInfo (com.sedmelluq.discord.lavaplayer.track.AudioTrackInfo)3 Document (org.jsoup.nodes.Document)3 Track (com.arsenarsen.lavaplayerbridge.player.Track)2