//No guarantee this will work (just an example) File track = new File("C:/path/to/song.mp3"); AudioFile f = AudioFileIO.read(track); f.getTag().setField(FieldKey.COMMENT,"My Comment");
AudioFile f = AudioFileIO.read(testFile); Tag tag = f.getTag(); tag.setField(FieldKey.ARTIST, "fred"); ............. f.commit();
AudioFile f = AudioFileIO.read(wavFile); WavTag tag = (WavTag) f.getTag(); Object[] temp = {false, tag.getFirst(FieldKey.TITLE), tag.getFirst(FieldKey.ARTIST), f.getAudioHeader().getTrackLength() // In seconds };
/** * Get the tag or if the file doesn't have one at all, create a default tag and return * * @return */ public Tag getTagOrCreateDefault() { Tag tag = getTag(); if (tag == null) { return createDefaultTag(); } return tag; }
AudioFile f = AudioFileIO.read("test.mp4); Tag tag = f.getTag(); Iterator<TagField> i = tag.getFields() while(i.hasNext() { System.out.println(i.next()); }
AudioFile file = AudioFileIO.read(new File("filename.wav")); Tag tag = file.getTag(); tag.setField(FieldKey.ARTIST,"Kings of Leon"); AudioFileIO.write(file);
/** * Get the tag or if the file doesn't have one at all, create a default tag and return * * @return */ public Tag getTagOrCreateDefault() { Tag tag = getTag(); if(tag==null) { return createDefaultTag(); } return tag; }
/** * Get the tag or if the file doesn't have one at all, create a default tag and return * * @return */ public Tag getTagOrCreateDefault() { Tag tag = getTag(); if(tag==null) { return createDefaultTag(); } return tag; }
/** * Get the tag or if the file doesn't have one at all, create a default tag and set it * * @return */ public Tag getTagOrCreateAndSetDefault() { Tag tag = getTag(); if (tag == null) { tag = createDefaultTag(); setTag(tag); return tag; } return tag; }
public boolean parseBook(Book b) { File aaxFile = Audible.instance.getAAXFileDest(b); if (!aaxFile.exists()) return false; try { Mp4FileReader reader = new Mp4FileReader(); AudioFile audiofile = reader.read(aaxFile); Mp4Tag tag = (Mp4Tag) audiofile.getTag(); LOG.info("" + audiofile + ", tag=" + tag); tagsToBook(tag, b); } catch (Throwable th) { th.printStackTrace(); LOG.debug("Error parsing aax: " + aaxFile.getAbsolutePath(), th); return false; } return true; }
/** * Get the tag or if the file doesn't have one at all, create a default tag and set it * * @return */ public Tag getTagOrCreateAndSetDefault() { Tag tag = getTag(); if(tag==null) { tag = createDefaultTag(); setTag(tag); return tag; } return tag; }
public void setFile(File file) throws InvalidAttributesException, CannotReadException, IOException, TagException, ReadOnlyFileException, InvalidAudioFrameException{ if(!file.exists()) { throw new InvalidAttributesException("Song file doesnt exist:"+file.getAbsolutePath()); } this.file=file; if(setTag(AudioFileIO.read(file).getTag())) { reloadAttributesFromFile(); } } protected boolean setTag(Tag t) {
AudioFile audioFile = AudioFileIO.read(testFile); Tag newTag = audioFile.getTag(); newTag.setField(FieldKey.ALBUM,"October"); newTag.setField(FieldKey.ARTIST,"U2"); audioFile.commit();
public static Mp3Metadata instance( InputStream stream ) throws Exception { Mp3Metadata me = null; File tmpFile = null; try { tmpFile = File.createTempFile("modeshape-sequencer-mp3", ".mp3"); FileOutputStream fileOutputStream = new FileOutputStream(tmpFile); byte[] b = new byte[1024]; while (stream.read(b) != -1) { fileOutputStream.write(b); } fileOutputStream.close(); AudioFileIO.logger.getParent().setLevel(Level.OFF); AudioFile f = AudioFileIO.read(tmpFile); Tag tag = f.getTag(); me = new Mp3Metadata(); me.author = tag.getFirst(ARTIST); me.album = tag.getFirst(ALBUM); me.title = tag.getFirst(TITLE); me.comment = tag.getFirst(COMMENT); me.year = tag.getFirst(YEAR); } finally { if (tmpFile != null) { tmpFile.delete(); } } return me; }
@Override public void parseContent(final MultivaluedMap<String, String> parameters, final Path filePath, String extension, final String mimeType, final ParserResultBuilder resultBuilder) throws Exception { final AudioFile f = AudioFileIO.read(filePath.toFile()); final ParserFieldsBuilder metas = resultBuilder.metas(); metas.set(MIME_TYPE, findMimeType(extension, mimeType, EXTENSIONMAP::get)); final Tag tag = f.getTag(); if (tag == null) return; if (tag.getFieldCount() == 0) return; for (Map.Entry<FieldKey, ParserField> entry : FIELDMAP.entrySet()) { final List<TagField> tagFields = tag.getFields(entry.getKey()); if (tagFields == null) continue; for (TagField tagField : tagFields) { if (!(tagField instanceof TagTextField)) continue; metas.add(entry.getValue(), ((TagTextField) tagField).getContent()); } } }
/** * Replace with new tag * * @param af The file we want to process * @throws CannotWriteException */ @Override public void write(AudioFile af) throws CannotWriteException { Path file = af.getFile().toPath(); if (TagOptionSingleton.getInstance().isCheckIsWritable() && !Files.isWritable(file)) { logger.severe(Permissions.displayPermissions(file)); logger.severe(ErrorMessage.GENERAL_WRITE_FAILED.getMsg(af.getFile() .getPath())); throw new CannotWriteException(ErrorMessage.GENERAL_WRITE_FAILED_TO_OPEN_FILE_FOR_EDITING .getMsg(file)); } if (af.getFile().length() <= MINIMUM_FILESIZE) { throw new CannotWriteException(ErrorMessage.GENERAL_WRITE_FAILED_BECAUSE_FILE_IS_TOO_SMALL .getMsg(file)); } writeTag(af.getTag(), file); }
@Override public Track readSingle(Track track) { Mp4FileReader reader = new Mp4FileReader(); try { org.jaudiotagger.audio.AudioFile audioFile = reader.read(track.getTrackData().getFile()); copyHeaderFields((GenericAudioHeader) audioFile.getAudioHeader(), track); org.jaudiotagger.tag.Tag tag = audioFile.getTag(); copyCommonTagFields(tag, track); copySpecificTagFields(tag, track); } catch (Exception e) { e.printStackTrace(); System.out.println("Couldn't read file: " + track.getTrackData().getFile()); } return track; }
public Track readSingle(Track track) { TrackData trackData = track.getTrackData(); try { OggFileReader reader = new OggFileReader(); AudioFile af1 = reader.read(trackData.getFile()); Tag tag = af1.getTag(); copyCommonTagFields(tag, track); copySpecificTagFields(tag, track); copyHeaderFields((GenericAudioHeader) af1.getAudioHeader(), track); } catch (Exception e) { System.out.println("Couldn't read file: " + trackData.getFile()); } return track; }
/** * Delete the tag (if any) present in the given file * * @param af The file to process * * @throws CannotWriteException if anything went wrong * @throws org.jaudiotagger.audio.exceptions.CannotReadException */ @Override public void delete(AudioFile af) throws CannotReadException, CannotWriteException { Path file = af.getFile().toPath(); if (TagOptionSingleton.getInstance().isCheckIsWritable() && !Files.isWritable(file)) { logger.severe(Permissions.displayPermissions(file)); throw new CannotWriteException(ErrorMessage.GENERAL_DELETE_FAILED .getMsg(file)); } if (af.getFile().length() <= MINIMUM_FILESIZE) { throw new CannotWriteException(ErrorMessage.GENERAL_DELETE_FAILED_BECAUSE_FILE_IS_TOO_SMALL .getMsg(file)); } deleteTag(af.getTag(), file); }
@Override public void write(Track track) throws TagWriteException { try { org.jaudiotagger.audio.AudioFile af1 = AudioFileIO.read(track.getTrackData().getFile()); Tag abstractTag = af1.getTag(); copyTagFields(abstractTag, new Mp4Tag(), track); // workaround since track/tracktotal and disc/disctotal share same field handleTrackDiscFields(abstractTag, track); // workaround since genre and genre custom field types used handleGenreFields(abstractTag, track); AudioFileIO.write(af1); } catch (Exception e) { throw new TagWriteException(e); } }