全然仕事とは関係ねぇけど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」ってのがデバイスとやり取りしてくれてるっぽい???