S_a_k_Uの日記みたいなDB

~サクゥーと呼ばないで~

MP3関係

全然仕事とは関係ねぇけどw
このコンポーネントで再生できるし、
JLayer(MP3 decoder/player/converter library for Java^(TM) platform)
タグは、このコンポーネントで取得/更新できるし、
MP3 Tag java library



なんでこんなに簡単なんじゃ(爆



JLayerの方はサンプルがねかったけど、JavaDocのPlayerってクラスのAPI見てなんとなく動くしwww


それぞれのJARファイルをクラスパスに置いて、下記のコードで、タグ情報を表示して、演奏が開始される。
JLayer 1.0
MP3 Tag java library 0.5.4

import java.io.File;
import java.io.FileInputStream;

import javazoom.jl.player.Player;

import org.farng.mp3.MP3File;
import org.farng.mp3.id3.AbstractID3v2;

public class TestMP3 {

    public static void main(String [] args) {

        try {

            File file = new File("【MP3ファイル】");

            MP3File mp3file = new MP3File(file);
            AbstractID3v2 tag = mp3file.getID3v2Tag();

            System.out.println(tag.getAlbumTitle());
            System.out.println(tag.getLeadArtist());
            System.out.println(tag.getSongTitle());
            System.out.println(tag.getTrackNumberOnAlbum());
            System.out.println(tag.getYearReleased());
    
            Player p = new Player(new FileInputStream(file));

            p.play();
            p.close();

        } catch (Throwable t) {

            t.printStackTrace();

        }

    }

}

Player#play()メソッドは別スレッドになってないので、MP3プレイヤのUIを作る場合は、別スレッドにして制御してやる必要があるみたい。
PlayerAppletクラスが参考になるな。
んで、JMFでないということでどうなっとんかと思ったら、com.sun.mediaパッケージを利用して、「Java sound event dispatcher」ってのがデバイスとやり取りしてくれてるっぽい???