public JAudioTagReader(String filename) { try { MP3File.logger.setLevel(Level.OFF); this.filename = filename; if (log.isTraceEnabled()) log.trace("JAudioTagReader(): filename=" + filename); MP3File mp3file; try { // mp3file = new MP3File(filename); mp3file = new MP3File(new File(filename), MP3File.LOAD_ALL, true); } catch (ReadOnlyFileException roe) { mp3file = new MP3File(new File(filename), MP3File.LOAD_ALL, true); } if (log.isTraceEnabled()) log.trace("JAudioTagReader(): mp3file=" + mp3file.displayStructureAsPlainText()); id3v1 = mp3file.getID3v1Tag(); id3v2 = mp3file.getID3v2TagAsv24(); if (id3v2 != null) { String identifier = id3v2.getIdentifier(); if (log.isTraceEnabled()) log.trace("JAudioTagReader(): id3v2 identifier=" + identifier); } if (id3v1 instanceof ID3v11Tag) { id3v11 = (ID3v11Tag) id3v1; } // if (log.isDebugEnabled()) // log.debug("JAudioTagReader(): GEOB frames=" + getFrames(FRAME_GENERAL)); } catch (java.lang.OutOfMemoryError e) { log.error("JAudioTagReader(): error out of memory, filename=" + filename, e); } catch (Exception e) { log.error("JAudioTagReader(): error Exception, filename=" + filename, e); } }