【Java】MP3を再生
正直、デバイスドライバ作ってJavaに関連させればいいんだがね
パッケージされてたものがあったからそれを使おう。
DDKとかツールもってないからなぁ~、そもそも金がかかる・・あれ?無料だっけ?
今の時代だとAndroidでやったほうがお得や・・
iPhoneは言語がちゃうから別な
その話はおいておいてと
通常、オラクルの汎化メディアパッケージのJMFとかつかうんだがMIDIやAU、WAV,WMA形式しか対応してなくてね・・
こまったもんだよ
まず以下のZIPをダウンロードしる!
basicplayer3.0.zip
commons-logging-1.1.3-bin.zip
終わったら、解答して
フォルダ内すべての*.jarファイルを外部Jarとして追加してください
全部追加しないと、後にダブルクリックして起動できるようにしたときに
動かないからなぁ~
内容にMain関数使用しているパッケージもあるみたいなので
マニフェストファイルとかで実行させたいインスタンスのクラス名は指定しておきなさい
ちなみに今回は必要なDLLファイルはいらんな
class MP3Player {
private BasicPlayer bp;
private BasicController bc;
・・・
bp=new BasicPlayer();
bp.addBasicPlayerListener(new BasicPalyerListener(){
public void opened(Object arg0, Map arg1) {} //オープン時呼び出し
public void progress(int arg0, long arg1, byte[] arg2, Map arg3) {} //再生時の処理
public void setController(BasicController arg0) {} //パンや音量調節時
public void stateUpdated(BasicPlayerEvent arg0) {} //一時停止とか再生とかそのタイミング
});
音楽再生時にプログレスバーを動かしたいとか
タイムをカウントするとかならprogress
ループ再生とか使いたいなら
stateUpdatedメソッドで
arg0.getCode()==BasicPlayerEvent.EOMをif文にいれて
音楽を止めたあと、再生しなおせばいいのだ
try{
bc.open(file); //ファイルオープン
bc.play(); //再生
bc.setGain(volume); //音量設定
bc.setPan(0.0); //パン、ステレオかな
}catch (BasicPlayerException e){
e.printStackTrace();
}
再生のあとに音量やパンを設定しないとなぜか有効にならない・・・
try {
bc.stop();
} catch (BasicPlayerException e) {
e.printStackTrace();
}
以上で音楽ストップできる。
ただし、一時停止じゃないので注意な!
一時停止は、他のメソッドがあるのでそちらをつかいなされ
さらに、イコライザーとかしたいなら
javazoomにいろいろあるからどぞ
デバイスーC言語ーJavaで橋渡しすれば
もっと多様にできると思うけど大変ですな(´・ω・`)
パッケージされてたものがあったからそれを使おう。
DDKとかツールもってないからなぁ~、そもそも金がかかる・・あれ?無料だっけ?
今の時代だとAndroidでやったほうがお得や・・
iPhoneは言語がちゃうから別な
その話はおいておいてと
通常、オラクルの汎化メディアパッケージのJMFとかつかうんだがMIDIやAU、WAV,WMA形式しか対応してなくてね・・
こまったもんだよ
まず以下のZIPをダウンロードしる!
basicplayer3.0.zip
commons-logging-1.1.3-bin.zip
終わったら、解答して
フォルダ内すべての*.jarファイルを外部Jarとして追加してください
全部追加しないと、後にダブルクリックして起動できるようにしたときに
動かないからなぁ~
内容にMain関数使用しているパッケージもあるみたいなので
マニフェストファイルとかで実行させたいインスタンスのクラス名は指定しておきなさい
ちなみに今回は必要なDLLファイルはいらんな
class MP3Player {
private BasicPlayer bp;
private BasicController bc;
・・・
bp=new BasicPlayer();
bp.addBasicPlayerListener(new BasicPalyerListener(){
public void opened(Object arg0, Map arg1) {} //オープン時呼び出し
public void progress(int arg0, long arg1, byte[] arg2, Map arg3) {} //再生時の処理
public void setController(BasicController arg0) {} //パンや音量調節時
public void stateUpdated(BasicPlayerEvent arg0) {} //一時停止とか再生とかそのタイミング
});
音楽再生時にプログレスバーを動かしたいとか
タイムをカウントするとかならprogress
ループ再生とか使いたいなら
stateUpdatedメソッドで
arg0.getCode()==BasicPlayerEvent.EOMをif文にいれて
音楽を止めたあと、再生しなおせばいいのだ
try{
bc.open(file); //ファイルオープン
bc.play(); //再生
bc.setGain(volume); //音量設定
bc.setPan(0.0); //パン、ステレオかな
}catch (BasicPlayerException e){
e.printStackTrace();
}
再生のあとに音量やパンを設定しないとなぜか有効にならない・・・
try {
bc.stop();
} catch (BasicPlayerException e) {
e.printStackTrace();
}
以上で音楽ストップできる。
ただし、一時停止じゃないので注意な!
一時停止は、他のメソッドがあるのでそちらをつかいなされ
さらに、イコライザーとかしたいなら
javazoomにいろいろあるからどぞ
デバイスーC言語ーJavaで橋渡しすれば
もっと多様にできると思うけど大変ですな(´・ω・`)
スポンサーサイト