Exemplo n.º 1
0
 public MediaFile getMediaFile(int trackId) {
   if (!mediaFileCache.isElementInMemory(trackId)) {
     LOG.debug("media file not in memory, load meta data from db!");
     loadMediaFiles(Arrays.asList(trackId));
     if (!mediaFileCache.isElementInMemory(trackId)) {
       // trackId might refer to a playing track/video that since have been removed
       return null;
     }
   }
   return (MediaFile) mediaFileCache.get(trackId).getValue();
 }
Exemplo n.º 2
0
 public void loadMediaFiles(List<Integer> mediaFileIds) {
   List<Integer> missingMediaFileIds = new ArrayList<>(mediaFileIds);
   for (Iterator<Integer> it = missingMediaFileIds.iterator(); it.hasNext(); ) {
     if (mediaFileCache.isElementInMemory(it.next())) {
       it.remove();
     }
   }
   if (missingMediaFileIds.size() > 0) {
     List<Track> tracks = libraryBrowserService.getTracks(missingMediaFileIds);
     for (Track track : tracks) {
       mediaFileCache.put(new Element(track.getId(), getMediaFile(track)));
     }
   }
 }