[Processing 1.0 入門 #1] mp3ファイル再生
December 13, 2008

標準ライブラリのひとつ、minimライブラリを使えば、mp3ファイルの読み込みや波形出力が簡単にできる。
mp3ファイルを再生するだけなら、ソースは6行。
// minimライブラリをimport
import ddf.minim.*;
// 変数定義
Minim minim;
AudioPlayer player;
// インスタンス生成
minim = new Minim(this);
player = minim.loadFile("test.mp3");// ロード
// 再生
player.play();
setup メソッドとdraw メソッド
『Built with Processing』を流し読みしていたら書いてあったんだけど、初期化処理とメインのループ処理をそれぞれsetup メソッドとdraw メソッド内に記述して構造化するのがいいみたい。
今回のmp3再生だと次のようになる。[2008.12.13 ソース訂正]
import ddf.minim.*;
Minim minim;
AudioPlayer player;
void setup(){
minim = new Minim(this);
player = minim.loadFile("atom.mp3");
}
void draw(){
player.play();
}
drawメソッドは、stopボタンが押されるか、エラーで中断する以外は無限ループしている状態なんだとか。
playメソッドは1回再生したら終了するだろうから、いいのかな。
[訂正後ソース]
import ddf.minim.*;
Minim minim;
AudioPlayer player;
void setup(){
minim = new Minim(this);
player = minim.loadFile("atom.mp3");
player.play();
}
おまけ
loop再生したいとき
player.loop();
エラー『NullPointerException』と出るとき
存在しないmp3ファイル名を指定したり、ファイルによってはエラーになる。
日本語コメント
Macだと日本語コメントはOS 10.4以降じゃないと使えないって『Built with Processing』にあったけど、うちのMacはOS 10.4なのに日本語コメントできないや。
loadFileの第二引数
ドキュメントをみると、bufferSizeとある。
バッファについては『動画再生時の「バッファ」とは? - デジタル - 日経トレンディネット』を読んだ。
バッファメモリーのサイズが第二引数ということみたい。
第二引数を小さい値(たとえば100)とかに試しに指定すると、再生がスローになる。512とかにすると、普通に再生される。
再生ボリューム
player.setVolume(0.5);はエラーにならないけど、効果なし。
参考:Processing 1.0 - minim audioplayer volume change
よくわかんないエラー
次のようなエラーがでるけど、mp3は再生できる。
==== JavaSound Minim Error ====
==== Error parsing ID3v2: String index out of range: -131
今日買った本 3冊。
カテゴリー:
Trackback
Trackback URL for this entry:

















