Java Code Examples for org.jaudiotagger.tag.images.Artwork

The following examples show how to use org.jaudiotagger.tag.images.Artwork. These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
/**
 * Returns an input stream to the image in the given file.  If the file is an audio file,
 * the embedded album art is returned. In addition returns the mime type
 */
private Pair<InputStream, String> getImageInputStreamWithType(Path file) throws IOException {
    InputStream is;
    String mimeType;
    if (jaudiotaggerParser.isApplicable(file)) {
        LOG.trace("Using Jaudio Tagger for reading artwork from {}", file);
        MediaFile mediaFile = mediaFileService.getMediaFile(file);
        try {
            LOG.trace("Reading artwork from file {}", mediaFile);
            Artwork artwork = jaudiotaggerParser.getArtwork(mediaFile);
            is = new ByteArrayInputStream(artwork.getBinaryData());
            mimeType = artwork.getMimeType();
        } catch (Exception e) {
            LOG.debug("Could not read artwork from file {}", mediaFile);
            throw new RuntimeException(e);
        }
    } else {
        is = new BufferedInputStream(Files.newInputStream(file));
        mimeType = StringUtil.getMimeType(MoreFiles.getFileExtension(file));
    }
    return Pair.of(is, mimeType);
}
 
Example 2
Source Project: airsonic   Source File: CoverArtController.java    License: GNU General Public License v3.0 6 votes vote down vote up
/**
 * Returns an input stream to the image in the given file.  If the file is an audio file,
 * the embedded album art is returned. In addition returns the mime type
 */
private Pair<InputStream, String> getImageInputStreamWithType(File file) throws IOException {
    InputStream is;
    String mimeType;
    if (jaudiotaggerParser.isApplicable(file)) {
        LOG.trace("Using Jaudio Tagger for reading artwork from {}", file);
        MediaFile mediaFile = mediaFileService.getMediaFile(file);
        Artwork artwork;
        try {
            LOG.trace("Reading artwork from file {}", mediaFile);
            artwork = jaudiotaggerParser.getArtwork(mediaFile);
            is = new ByteArrayInputStream(artwork.getBinaryData());
            mimeType = artwork.getMimeType();
        } catch (Exception e) {
            LOG.debug("Could not read artwork from file {}", mediaFile);
            throw new RuntimeException(e);
        }
    } else {
        is = new FileInputStream(file);
        mimeType = StringUtil.getMimeType(FilenameUtils.getExtension(file.getName()));
    }
    return Pair.of(is, mimeType);
}
 
Example 3
@Nullable
protected Bitmap getAlbumArt() {
    try {
        Artwork artworkTag = getAudioFile(songPaths.get(0)).getTagOrCreateAndSetDefault().getFirstArtwork();
        if (artworkTag != null) {
            byte[] artworkBinaryData = artworkTag.getBinaryData();
            return BitmapFactory.decodeByteArray(artworkBinaryData, 0, artworkBinaryData.length);
        }
        return null;
    } catch (Exception ignored) {
        return null;
    }
}
 
Example 4
Source Project: Orin   Source File: AbsTagEditorActivity.java    License: GNU General Public License v3.0 5 votes vote down vote up
@Nullable
protected Bitmap getAlbumArt() {
    try {
        Artwork artworkTag = getAudioFile(songPaths.get(0)).getTagOrCreateAndSetDefault().getFirstArtwork();
        if (artworkTag != null) {
            byte[] artworkBinaryData = artworkTag.getBinaryData();
            return BitmapFactory.decodeByteArray(artworkBinaryData, 0, artworkBinaryData.length);
        }
        return null;
    } catch (Exception ignored) {
        return null;
    }
}
 
Example 5
Source Project: airsonic   Source File: JaudiotaggerParser.java    License: GNU General Public License v3.0 5 votes vote down vote up
public static Artwork getArtwork(MediaFile file) {
    AudioFile audioFile;
    try {
        audioFile = AudioFileIO.read(file.getFile());
    } catch (Throwable e) {
        LOG.warn("Failed to find cover art tag in " + file, e);
        return null;
    }
    Tag tag = audioFile.getTag();
    return tag == null ? null : tag.getFirstArtwork();
}
 
Example 6
@Nullable
protected Bitmap getAlbumArt() {
    try {
        Artwork artworkTag = getAudioFile(songPaths.get(0)).getTagOrCreateAndSetDefault().getFirstArtwork();
        if (artworkTag != null) {
            byte[] artworkBinaryData = artworkTag.getBinaryData();
            return BitmapFactory.decodeByteArray(artworkBinaryData, 0, artworkBinaryData.length);
        }
        return null;
    } catch (Exception ignored) {
        return null;
    }
}
 
Example 7
@Nullable
protected Bitmap getAlbumArt() {
    try {
        Artwork artworkTag = getAudioFile(songPaths.get(0)).getTagOrCreateAndSetDefault().getFirstArtwork();
        if (artworkTag != null) {
            byte[] artworkBinaryData = artworkTag.getBinaryData();
            return BitmapFactory.decodeByteArray(artworkBinaryData, 0, artworkBinaryData.length);
        }
        return null;
    } catch (Exception ignored) {
        return null;
    }
}
 
Example 8
Source Project: APlayer   Source File: MediaStoreUtil.java    License: GNU General Public License v3.0 5 votes vote down vote up
@WorkerThread
public static void saveArtwork(Context context, int albumId, File artFile)
    throws TagException, ReadOnlyFileException, CannotReadException, InvalidAudioFrameException, IOException, CannotWriteException {
  Song song = MediaStoreUtil.getSongByAlbumId(albumId);
  if (song == null) {
    return;
  }
  AudioFile audioFile = AudioFileIO.read(new File(song.getUrl()));
  Tag tag = audioFile.getTagOrCreateAndSetDefault();
  Artwork artwork = ArtworkFactory.createArtworkFromFile(artFile);
  tag.deleteArtworkField();
  tag.setField(artwork);
  audioFile.commit();
  insertAlbumArt(context, albumId, artFile.getAbsolutePath());
}
 
Example 9
@Nullable
protected Bitmap getAlbumArt() {
    try {
        Artwork artworkTag = getAudioFile(songPaths.get(0)).getTagOrCreateAndSetDefault().getFirstArtwork();
        if (artworkTag != null) {
            byte[] artworkBinaryData = artworkTag.getBinaryData();
            return BitmapFactory.decodeByteArray(artworkBinaryData, 0, artworkBinaryData.length);
        }
        return null;
    } catch (Exception ignored) {
        return null;
    }
}
 
Example 10
public Artwork getArtwork(MediaFile file) throws Exception {
    AudioFile audioFile = AudioFileIO.read(file.getFile().toFile());
    Tag tag = audioFile.getTag();
    return tag == null ? null : tag.getFirstArtwork();
}
 
Example 11
@Override
public void onReceive(final Context context, Intent intent) {
    XposedBridge.log("[SoundCloud Downloader] Entering album art downloader...");
    context.unregisterReceiver(this);

    XposedBridge.log("[SoundCloud Downloader] Unregistered receiver, starting Picasso...");
    Picasso.with(XposedMod.currentActivity).setLoggingEnabled(true); // enable logging to see why picasso fails to load
    Picasso.with(XposedMod.currentActivity).load(downloadPayload.getImageUrl()).into(new Target() {
        @Override
        public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
            try {
                File downloadedFile = new File(downloadPayload.getSaveDirectory(), downloadPayload.getFileName());
                if (!downloadedFile.exists()) {
                    XposedBridge.log("[SoundCloud Downloader] downloaded file does not exist, exiting...");
                    return;
                }

                TagOptionSingleton.getInstance().setAndroid(true);
                AudioFile audioFile = AudioFileIO.read(downloadedFile);
                Tag tag = audioFile.getTagOrCreateAndSetDefault();
                tag.setField(FieldKey.ARTIST,downloadPayload.getArtistName());
                tag.setField(FieldKey.GENRE, downloadPayload.getGenre());
                tag.setField(FieldKey.TITLE, downloadPayload.getTitle());
                tag.setField(FieldKey.ALBUM, downloadPayload.getTitle());

                ByteArrayOutputStream imgStream = new ByteArrayOutputStream();
                bitmap.compress(Bitmap.CompressFormat.JPEG, 90, imgStream);
                File artworkFile = File.createTempFile(downloadPayload.getTitle(), ".jpg");
                FileOutputStream artworkFileStream = new FileOutputStream(artworkFile);
                artworkFileStream.write(imgStream.toByteArray());
                artworkFileStream.close();
                artworkFile.deleteOnExit();
                imgStream.close();

                Artwork artwork = ArtworkFactory.createArtworkFromFile(artworkFile);
                artwork.setPictureType(3);
                tag.deleteArtworkField();
                tag.addField(artwork);
                tag.setField(artwork);

                audioFile.setTag(tag);
                AudioFileIO.write(audioFile);

                XposedBridge.log("[SoundCloud Downloader] Finished writing metadata...");

                XposedMod.currentActivity.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(audioFile.getFile())));

                XposedBridge.log("[SoundCloud Downloader] Broadcasting update to media scanner...");

            } catch (Exception e) {
                XposedBridge.log("[SoundCloud Downloader] Metadata error: " + e.getMessage());
            }
        }

        @Override
        public void onBitmapFailed(Drawable errorDrawable) {
            XposedBridge.log("[SoundCloud Downloader] Album art fetch failed!");
        }

        @Override
        public void onPrepareLoad(Drawable placeHolderDrawable) {
            XposedBridge.log("[SoundCloud Downloader] Preparing to load picasso...");
        }
    });
}