From: Bertrand F. <ber...@fl...> - 2008-07-17 19:25:12
|
Sylvain, This fix doesn't seem to work: WMA tags cannot be read nor written. Strange you can do it with atunes. Perhaps do you use an older version of JAudiotagger ? Sylvain Gaudard wrote: > Hi all > > Could someone with write permissions to Jajuk SVN add following patch > (fixes problem for reading mp4/wma files with Jaudiotagger library): > > Index: > /home/sylvain/Java/jajuk/src/main/java/org/jajuk/services/tags/JAudioTaggerTagImpl.java > > =================================================================== > --- > /home/sylvain/Java/jajuk/src/main/java/org/jajuk/services/tags/JAudioTaggerTagImpl.java > (Revision 4063) > +++ > /home/sylvain/Java/jajuk/src/main/java/org/jajuk/services/tags/JAudioTaggerTagImpl.java > (Arbeitskopie) > @@ -81,7 +81,7 @@ > * @see org.jajuk.services.tags.ITagImpl#getAlbumName() > */ > public String getAlbumName() throws Exception { > - return getValue(TagFieldKey.ALBUM); > + return tag.getFirstAlbum(); > } > > /* > @@ -90,7 +90,7 @@ > * @see org.jajuk.services.tags.ITagImpl#getAuthorName() > */ > public String getAuthorName() throws Exception { > - return getValue(TagFieldKey.ARTIST); > + return tag.getFirstArtist(); > } > > /* > @@ -99,7 +99,7 @@ > * @see org.jajuk.services.tags.ITagImpl#getComment() > */ > public String getComment() throws Exception { > - return getValue(TagFieldKey.COMMENT); > + return tag.getFirstComment(); > } > > /* > @@ -117,7 +117,7 @@ > * @see org.jajuk.services.tags.ITagImpl#getOrder() > */ > public long getOrder() throws Exception { > - String sOrder = getValue(TagFieldKey.TRACK); > + String sOrder = tag.getFirstTrack(); > if (NO_VALUE.equals(sOrder)) { > return 0; > } > @@ -142,7 +142,7 @@ > * @see org.jajuk.services.tags.ITagImpl#getStyleName() > */ > public String getStyleName() throws Exception { > - String result = getValue(TagFieldKey.GENRE); > + String result = tag.getFirstGenre(); > if ("genre".equals(result)) { > // the item will be the default jajuk unknown string > return ""; > @@ -174,7 +174,7 @@ > * @see org.jajuk.services.tags.ITagImpl#getTrackName() > */ > public String getTrackName() throws Exception { > - return getValue(TagFieldKey.TITLE); > + return tag.getFirstTitle(); > } > > /* > @@ -183,7 +183,7 @@ > * @see org.jajuk.services.tags.ITagImpl#getYear() > */ > public String getYear() throws Exception { > - String result = getValue(TagFieldKey.YEAR); > + String result = tag.getFirstYear(); > if (NO_VALUE.equals(result)) { > result = "0"; > } else { > > Thanks > > Regards > > Sylvain > > Christian Laireiter schrieb: >> Hi Betrand, >> >> Nice to see the changes. >> >> About the getValue(TagFieldKey) instead of get...(): >> >> The primary motivation behind this war to provide the >> NO_VALUE-constant value when the jaudiotagger should return null >> instead of an empty String. >> Looked at some places that implement getTitle() and well, all of them >> return "". >> And here it was possible to implement this check at just one place, >> so I thought it would be a good practice. >> Its just a proposal (to do it this way), feel free to change. >> >> I've just noticed that this will work too: >> this.tag.set(this.tag.createTagField(TagFieldKey.TITLE, trackName)); >> >> I think it would be save to implement a setValue-Method, that will >> remove >> existing tag-fields if the provided value is empty or null. >> Some implementations of audioformats could completely drop sth. like >> a frame. >> Would reduce file size (just by very few bytes, I know). However I'd >> feel cleaner about this. >> (Just my two cents) >> >> About the Errors, and the logging, I've some Ideas, respectively I >> can look the file registration issue up (oha what an english). >> However, I'm not into jaudiotagger. I've just started working on it. >> (change WMA) >> >> Now I've to do sth. else. >> >> Until later >> Regards >> Christian >> >> >> >> >> On Monday 14 July 2008, Bertrand Florat wrote: >> >>> Hi Christian, >>> >>> Thanks again for your patch. It has been applied against trunk after >>> some code cleanup (jajuk useless methods) and two fixes (wrong fields >>> used for track title and genre). We used jaudiotagger 1.126. >>> >>> Question : why do you use explicit write() method to setters : >>> public void setTrackName(String trackName) throws Exception { >>> this.tag.setTitle(trackName); >>> } >>> >>> and not to getters: >>> public String getTrackName() throws Exception { >>> return getValue(TagFieldKey.TITLE); >>> } >>> >>> ? >>> >>> Beside that, I tested jaudiotagger against my own collection of audio >>> sample files. It's globally very positive but some formats are not >>> supported out of the box. My first results (light tests) : >>> >>> >>> * MP3 : no problem found >>> >>> * Ogg : no problem found >>> >>> * Flac : no problem found >>> >>> * WMA: tags cannot be read nor written (no error messages). >>> 14 juil. 2008 19:31:24 >>> org.jaudiotagger.audio.generic.AudioFileWriter write >>> INFO: Started writing tag data for file:pickmeuprange.wma >>> >>> * AAC : Extension not recognized : Caused >>> by:org.jaudiotagger.audio.exceptions.CannotReadException: No Reader >>> associated to this extension: aac. Isn't AAC files the same that M4A ? >>> >>> * M4A: Read/write works except writing genres with special characters >>> (in my case "Variété") that fails >>> >>> * RAM: Extension not recognized : Caused >>> by:org.jaudiotagger.audio.exceptions.CannotReadException: No Reader >>> associated to this extension: ram >>> >>> * MP2: Extension not recognized >>> >>> :org.jaudiotagger.audio.exceptions.CannotReadException: No Reader >>> >>> associated to this extension: mp2 >>> >>> * APE: Extension not recognized : Caused >>> by:org.jaudiotagger.audio.exceptions.CannotReadException: No Reader >>> associated to this extension: ape >>> >>> * MAC: Extension not recognized >>> >>> :org.jaudiotagger.audio.exceptions.CannotReadException: No Reader >>> >>> associated to this extension: ape >>> >>> (Seems that even 1.126 doesn't support RAM and APE/MAC or perhaps >>> should >>> we use dedicated classes for tag access ? ) >>> >>> >>> Others points: >>> * On MP4, Paul says on the Jaudiotagger website "Supports reading and >>> writing of mp4,m4a and mp4p (protected) files, including multiple >>> images >>> and reverse dns fields". Perhaps should we add support for .mp4p (is it >>> the right extension name ?) >>> >>> * Does someone knows if JAudiotagger supports or plan to support >>> WavePack (.wv) ? >>> >>> * On logs: by default, we are flooded by logs. Do you know how to tune >>> them ? (basically, we want only errors and perhaps warnings). Is there >>> any way to integrate these logs within a larger scope (we at jajuk use >>> log4j, it would be nice if we could write jaudiotagger to the same >>> output files than others logs). Any idea ? >>> >>> Cheers, >>> >>> -Bertrand >>> >>> >>> (BTW, Christian, I wanted to let you know that your name has been added >>> to this page : >>> http://jajuk.info/index.php/Jajuk_Team#Contributors) >>> >>> Sylvain Gaudard wrote: >>> >>>> Hi Christian, hi Bertrand >>>> >>>> Thanks for this patch. I've used a part of the code for aTunes >>>> (converting number in genre field to matching genre name). I hope >>>> no one >>>> has a problem with it. >>>> >>>> Please note that Jaudiotagger does not support Ape tag (.ape and >>>> .mac), >>>> however it can read/write Mp4 files and *read* Real Audio files. For >>>> this you must use a recent enough version (latest is 1.126 you can get >>>> it from CVS >>>> <https://jaudiotagger.dev.java.net/source/browse/jaudiotagger/dist/>). >>>> >>>> Regards >>>> >>>> Sylvain >>>> >>>> Bertrand Florat schrieb: >>>> >>>>> Christian Laireiter wrote: >>>>> >>>>>> Hallo Bertrand, >>>>>> >>>>>> I've added a patch which replaces the entagged implementation with >>>>>> jaudiotagger, to the Ticket #1071. >>>>>> However I meant to added it to #947, du to mixing the browser tabs. >>>>>> >>>>>> Excuse me for the inconvenience. >>>>>> >>>>>> regards >>>>>> Christian >>>>>> >>>>> Thanks a lot Christian, I hope to apply it soon to the trunk. >>>>> >>>>> - Bertrand >>>>> >>>> ------------------------------------------------------------------------- >>>> >>>> Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! >>>> Studies have shown that voting for your favorite open source project, >>>> along with a healthy diet, reduces your potential for chronic lameness >>>> and boredom. Vote Now at http://www.sourceforge.net/community/cca08 >>>> _______________________________________________ >>>> Jajuk-developers mailing list >>>> Jaj...@li... >>>> https://lists.sourceforge.net/lists/listinfo/jajuk-developers >>>> >> >> >> >> > > -- Bertrand FLORAT ber...@fl... http://www.florat.net Chat: bf...@ja... PGP keyserver: pgp.mit.edu Try Jajuk Advanced jukebox (http://jajuk.info) |