Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.util.HashMap;
- import java.util.Map;
- import javazoom.jl.player.Player;
- import org.blinkenlights.jid3.ID3Tag;
- import org.blinkenlights.jid3.MP3File;
- import org.blinkenlights.jid3.v1.ID3V1Tag;
- import org.blinkenlights.jid3.v1.ID3V1_1Tag;
- import org.blinkenlights.jid3.v2.ID3V2Tag;
- public class MP3Object extends Thread
- {
- private String file;
- private Player player;
- private Map<String, String> tags;
- public void die()
- {
- player.close();
- }
- public void pause()
- {
- player.pause();
- }
- public void unpause()
- {
- player.resume();
- }
- public MP3Object(String filename) throws FileNotFoundException
- {
- File f = new File(filename);
- if(f.exists())
- {
- file = filename;
- try
- {
- findTags();
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- }
- else
- {
- throw new FileNotFoundException();
- }
- }
- public void run()
- {
- try
- {
- player = new Player(new FileInputStream(file));
- player.play();
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- }
- private void findTags() throws Exception
- {
- int version = 0;
- tags = new HashMap<String, String>();
- ID3Tag[] taglist = (new MP3File(new File(file))).getTags();
- for (int i = 0; i < taglist.length; i++)
- {
- if (taglist[i] instanceof ID3V2Tag && version < 2)
- {
- tags.put("Title", ((ID3V2Tag) taglist[i]).getTitle());
- tags.put("Track", Integer.toString(((ID3V2Tag) taglist[i]).getTrackNumber()));
- tags.put("Album", ((ID3V2Tag) taglist[i]).getAlbum());
- tags.put("Artist", ((ID3V2Tag) taglist[i]).getArtist());
- tags.put("Year", Integer.toString(((ID3V2Tag) taglist[i]).getYear()));
- tags.put("Genre", ((ID3V2Tag) taglist[i]).getGenre());
- version = 2;
- }
- else if (taglist[i] instanceof ID3V1Tag && version < 1)
- {
- tags.put("Title", ((ID3V1Tag) taglist[i]).getTitle());
- tags.put("Track", Integer.toString(((ID3V1_1Tag) taglist[i]).getAlbumTrack()));
- tags.put("Album", ((ID3V1Tag) taglist[i]).getAlbum());
- tags.put("Artist", ((ID3V1Tag) taglist[i]).getArtist());
- tags.put("Year", ((ID3V1Tag) taglist[i]).getYear());
- tags.put("Genre", ((ID3V1Tag) taglist[i]).getGenre().toString());
- version = 1;
- }
- }
- tags.put("Title", (tags.get("Title") == null) ? "Unknown" : tags.get("Title"));
- tags.put("Track", (tags.get("Track") == null) ? "" : tags.get("Track"));
- tags.put("Album", (tags.get("Album") == null) ? "Unknown" : tags.get("Album"));
- tags.put("Artist", (tags.get("Artist") == null) ? "Unknown" : tags.get("Artist"));
- tags.put("Year", (tags.get("Year") == null) ? "" : tags.get("Year"));
- tags.put("Genre", (tags.get("Genre") == null) ? "" : tags.get("Genre"));
- }
- public String getTag(String which)
- {
- return tags.get(which);
- }
- public static void main(String[] args)
- {
- try
- {
- MP3Object mp3o = new MP3Object("C:\\Documents and Settings\\Chaz\\My Documents\\My Music\\test.mp3");
- System.out.println("Title: "+mp3o.getTag("Title"));
- System.out.println("Album: "+mp3o.getTag("Album"));
- System.out.println("Track: "+mp3o.getTag("Track"));
- System.out.println("Genre: "+mp3o.getTag("Genre"));
- System.out.println("Artist: "+mp3o.getTag("Artist"));
- System.out.println("Year: "+mp3o.getTag("Year"));
- mp3o.start();
- Thread.sleep(5000);
- mp3o.pause();
- Thread.sleep(5000);
- mp3o.unpause();
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- }
- }
Add Comment
Please, Sign In to add comment