Examples of Mp4Tag


Examples of entagged.audioformats.mp4.Mp4Tag

     *      xxxx <-  id de l'info
     *       data
     *      ]
     */
    public Mp4Tag read( RandomAccessFile raf ) throws CannotReadException, IOException {
        Mp4Tag tag = new Mp4Tag();
       
        Mp4Box box = new Mp4Box();
        byte[] b = new byte[4];
       
        //Get to the facts
        //1-Searching for "moov"
        seek(raf, box, "moov");
       
        //2-Searching for "udta"
        seek(raf, box, "udta");
       
        //3-Searching for "meta"
        seek(raf, box, "meta");
       
        //4-skip the meta flags
        raf.read(b);
        if(b[0] != 0)
            throw new CannotReadException();
       
        //5-Seek the "ilst"
        seek(raf, box, "ilst");
        int length = box.getOffset() - 8;
       
        int read = 0;
        while(read < length) {
            b = new byte[8];
            raf.read(b);
            box.update(b);
                          
            int fieldLength = box.getOffset() - 8;
            b = new byte[fieldLength];
            raf.read(b);
           
            tag.add(createMp4Field(box.getId(), b));
            read += 8+fieldLength;
        }
       
        System.out.println(tag);
        return tag;
View Full Code Here

Examples of org.jaudiotagger.tag.mp4.Mp4Tag

    public void parse( File file ) throws IOException {

        try {
            AudioFile f = AudioFileIO.read(file);
            Mp4Tag mp4tag = (Mp4Tag) f.getTag();

            this.artistTitle = mp4tag.getFirst(Mp4FieldKey.ARTIST);
            this.albumTitle = mp4tag.getFirst(Mp4FieldKey.ALBUM);
            this.albumArtist = mp4tag.getFirst(Mp4FieldKey.ALBUM_ARTIST);
            this.trackTitle = mp4tag.getFirst(FieldKey.TITLE);
            this.genre = mp4tag.getFirst(FieldKey.GENRE);
            this.trackNumber = ((Mp4TrackField) mp4tag.getFirstField(Mp4FieldKey.TRACK)).getTrackNo();
           
        } catch ( Exception e) {
            throw new IOException("Unable to read file: " + file.getName(), e);
        }
    }
View Full Code Here

Examples of org.jaudiotagger.tag.mp4.Mp4Tag

        return (ext.equalsIgnoreCase("mp4") || ext.equalsIgnoreCase("m4a"));
    }

    @Override
    protected void copySpecificTagFields(Tag tag, Track track) {
        Mp4Tag mp4Tag = (Mp4Tag) tag;
        TrackData trackData = track.getTrackData();

        Mp4TrackField trackField = (Mp4TrackField) mp4Tag.getFirstField(Mp4FieldKey.TRACK);
        if (trackField != null) {
            if (trackField.getTrackNo() != null) {
                trackData.addTrack(trackField.getTrackNo().intValue());
            }
            if (trackField.getTrackTotal() != null) {
                trackData.addTrackTotal(trackField.getTrackTotal().intValue());
            }
        }

        Mp4DiscNoField discField = (Mp4DiscNoField) mp4Tag.getFirstField(Mp4FieldKey.DISCNUMBER);
        if (discField != null) {
            if (discField.getDiscNo() != null) {
                trackData.addDisc(discField.getDiscNo().intValue());
            }
            if (discField.getDiscTotal() != null) {
                trackData.addDiscTotal(discField.getDiscTotal().intValue());
            }
        }

        List<TagField> genreFields = new ArrayList<TagField>();
        genreFields.addAll(mp4Tag.get(Mp4FieldKey.GENRE_CUSTOM));
        genreFields.addAll(mp4Tag.get(Mp4FieldKey.GENRE_ITUNES));
        for (TagField genreField : genreFields) {
            trackData.addGenre(genreField.toString());
        }
    }
View Full Code Here

Examples of org.jaudiotagger.tag.mp4.Mp4Tag

    @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);
View Full Code Here

Examples of org.jaudiotagger.tag.mp4.Mp4Tag

    }

    private void handleGenreFields(Tag tag, Track track) throws FieldDataInvalidException, KeyNotFoundException {
      FieldValues genres = track.getTrackData().getGenres();
      if (genres != null && !genres.isEmpty()) {
        Mp4Tag mp4Tag = (Mp4Tag) tag;
       
        mp4Tag.deleteField(Mp4FieldKey.GENRE);
        mp4Tag.deleteField(Mp4FieldKey.GENRE_CUSTOM);
       
      for (int i = 0; i < genres.size(); i++) {
        String genre = genres.get(i);
          if (!Util.isEmpty(genre)) {
            mp4Tag.addField(FieldKey.GENRE, genre);
          }
        }
      }
    }
View Full Code Here

Examples of org.jaudiotagger.tag.mp4.Mp4Tag

     *
     * There are gaps between these boxes

     */
    public Mp4Tag read(RandomAccessFile raf) throws CannotReadException, IOException {
        Mp4Tag tag = new Mp4Tag();

        //Get to the facts everything we are interested in is within the moov box, so just load data from file
        //once so no more file I/O needed
        Mp4BoxHeader moovHeader = Mp4BoxHeader.seekWithinLevel(raf, Mp4NotMetaFieldKey.MOOV.getFieldName());
        if (moovHeader == null) {
View Full Code Here

Examples of org.jaudiotagger.tag.mp4.Mp4Tag

        if (SupportedFileFormat.FLAC.getFilesuffix().equals(file.getName().substring(file.getName().lastIndexOf('.')))) {
            return new FlacTag(VorbisCommentTag.createNewTag(), new ArrayList<MetadataBlockDataPicture>());
        } else if (SupportedFileFormat.OGG.getFilesuffix().equals(file.getName().substring(file.getName().lastIndexOf('.')))) {
            return VorbisCommentTag.createNewTag();
        } else if (SupportedFileFormat.MP4.getFilesuffix().equals(file.getName().substring(file.getName().lastIndexOf('.')))) {
            return new Mp4Tag();
        } else if (SupportedFileFormat.M4A.getFilesuffix().equals(file.getName().substring(file.getName().lastIndexOf('.')))) {
            return new Mp4Tag();
        } else if (SupportedFileFormat.M4P.getFilesuffix().equals(file.getName().substring(file.getName().lastIndexOf('.')))) {
            return new Mp4Tag();
        } else if (SupportedFileFormat.WAV.getFilesuffix().equals(file.getName().substring(file.getName().lastIndexOf('.')))) {
            return new WavTag();
        } else {
            throw new RuntimeException("Unable to create default tag for this file format");
        }
View Full Code Here

Examples of org.jaudiotagger.tag.mp4.Mp4Tag

     * @param raf
     * @param rafTemp
     * @throws IOException
     */
    public void delete(RandomAccessFile raf, RandomAccessFile rafTemp) throws IOException {
        Mp4Tag tag = new Mp4Tag();

        try {
            write(tag, raf, rafTemp);
        } catch (CannotWriteException cwe) {
            throw new IOException(cwe.getMessage());
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.