@Override public void trackLoaded(AudioTrack track) { if (condition.test(track) && !track.getIdentifier().equals(identifier)) { synchronized (streams) { resolutionCache.put(identifier, track.getIdentifier()); } } delegate.trackLoaded(track); }
private AudioItem checkSourcesForItemOnce(AudioReference reference, AudioLoadResultHandler resultHandler, boolean[] reported) { for (AudioSourceManager sourceManager : sourceManagers) { if (reference.containerDescriptor != null && !(sourceManager instanceof ProbingAudioSourceManager)) { continue; } AudioItem item = sourceManager.loadItem(this, reference); if (item != null) { if (item instanceof AudioTrack) { log.debug("Loaded a track with identifier {} using {}.", reference.identifier, sourceManager.getClass().getSimpleName()); reported[0] = true; resultHandler.trackLoaded((AudioTrack) item); } else if (item instanceof AudioPlaylist) { log.debug("Loaded a playlist with identifier {} using {}.", reference.identifier, sourceManager.getClass().getSimpleName()); reported[0] = true; resultHandler.playlistLoaded((AudioPlaylist) item); } return item; } } return null; }
private boolean loadFromStream(String identifier, AudioLoadResultHandler resultHandler) { try { StreamInstance stream; synchronized (streams) { String finalIdentifier = defaultOnNull(resolutionCache.get(identifier), identifier); stream = streams.get(finalIdentifier); } if (stream != null) { AudioTrack track = stream.getTrack().makeClone(); log.debug("Track {} (originally {}) loaded using existing stream.", track.getIdentifier(), identifier); resultHandler.trackLoaded(track); return true; } } catch (Exception e) { log.error("Error when checking streams for identifier {}.", identifier); } return false; }