package org.cmc.music.myid3.examples;
import java.io.File;
import java.io.IOException;
import org.cmc.music.common.ID3ReadException;
import org.cmc.music.common.ID3WriteException;
import org.cmc.music.metadata.IMusicMetadata;
import org.cmc.music.metadata.MusicMetadataSet;
import org.cmc.music.myid3.MyID3;
import org.cmc.music.myid3.MyID3Listener;
import org.cmc.music.myid3.id3v2.MyID3v2Write;
import org.cmc.music.util.Debug;
public class ListenerAndFilterExample
{
public void listenerExample(File mp3File) throws IOException,
ID3WriteException, ID3ReadException
{
/*
* The listener receives log message as the library parses and writes
* the mp3 file.
*
* It writes them to the console using the Debug class.
*/
MyID3Listener listener = new MyID3Listener() {
public void log()
{
Debug.debug();
}
public void log(String s)
{
Debug.debug("log: " + s);
}
};
MusicMetadataSet srcSet = new MyID3().read(mp3File, listener);
Debug.debug("srcSet", srcSet);
String name = mp3File.getName();
if (name.toLowerCase().endsWith(".mp3"))
name = name.substring(0, name.length() - 4);
name += ".1.mp3";
File temp = new File(mp3File.getParentFile(), name);
MyID3v2Write.Filter filter = new MyID3v2Write.Filter() {
public boolean filter(String frameid)
{
/*
* Only write "song title" and "album name" frames.
*
* Discard all others (such as "artist name").
*/
if (frameid.equals("TIT2"))
return false;
if (frameid.equals("TALB"))
return false;
return true;
}
};
IMusicMetadata metadata = srcSet.merged;
new MyID3().write(mp3File, temp, srcSet, metadata, filter, listener);
MusicMetadataSet temp_set = new MyID3().read(temp, listener);
}
}