ugnagブログ

たいした内容はありません。思いつきで書いているだけ。
開発日記がメインかな。

<< MP3プレーヤー インポート処理 | main | JavaZoom BasicPlayer 使い方 >>

MP3プレイヤー 技術的な話

今回は技術的な話をしてみようと思う。
このアプリはjavaで書いている。
そのため、(恐らくは)どのosでも動く(はず)。

guiはswingを使用。
javaの最新guiとしてはjavaFXがあるが、まだ情報が少ないようなので
swingを使っている。

外部ライブラリとして次のものを使っている。

・BasicPlayer
サウンド再生

・JAudioTagger
サウンドファイルのメタ情報取得

・jcifs
Windowsネットワークアクセス


BasicPlayerを使えばmp3を簡単に再生できる。
自身でスレッドを動かしているので、そこも楽だ。
ただ、再生開始時(?)などのタイミングだと思うが、ボリュームレベルが
リセットされる。
また、ボリュームの値自体も人間の感性と違うので注意が必要。

そのためBasicPlayerはそのまま使わず、ラッパークラスを作成するべきだ。
そうしておけば、将来的にBasicPlayerではない別のライブラリを使う時にも
変更が楽だ。
ちなみに、javaFXにはオーディオ再生機能があるのだが、初期調査でlinuxでは
mp3が再生できないことがわかり採用しなかった。
しかし、将来的にはどうなるかわからない。


次に、JAudioTaggerだがこれは結構いいと思う。
mp3だけでなく、いろいろな種類のファイルに対応している。
惜しいのはローカルファイルにしか対応していないこと。
ストリームから読めればもっといいのだが。
また、内部でsunのライブラリを使っているため、androidで使えない。
これが残念だ。


最後にjcifsだが、こちらは他が見つからなかったので使うしかない。
ただ、前々回に書いたバグがあるので少し心配と言えば心配だが。



なお、現状。

先日時点での課題は次の通り。

1.ネットワーク上のプレイリストの取り込み。
2.インポートのキャンセル
3.インポートの中断(後で再開)
4.音楽ファイルのディレクトリの指定ダイアログをネットワークに対応させる。
5.インポートエラーの詳細表示。
6.メタ情報の修正入力。
7.ライブラリセレクトで、アルバム選択の表示順を、
アーティストが「全て」のときはアルバム名順にし、
アーティストが指定されているときは、リリース年順にする。

このうち、

1.○
2.実装中止(意味がなさそうな気がしたので)
3.△(一部バグが残っている)
4.☓
5.☓
6.☓
7.○

こんな感じ。
プログラム・開発(MP3用ツール) | comments (0) | -

Comments

Comment Form

本文に書いて下さい
本文にh抜きで書いて下さい