|
RIASUさん、はじめまして。
JAVAを用いたプレーヤーを探していて、このサイトに辿り着きました。 私は卒業研究で状況に応じて選曲する音楽プレイヤーの開発をしています。その研究のプレーヤー部分の一部としてRIASUさんのJMPlayerを使わせて頂きたく思い、その旨をここにご報告させて頂きます。
最後になりましたが、今後も応援しております。 |
No.68 2011/11/16(Wed) 18:42:42
| |
|
はじめまして。報告ありがとうございます。 このような辺境まで長旅お疲れ様です。
JMPlayerは、設計面に関しては荒削りなままなのですが、機能としては問題ないはずです。次回はスキン機能を付ける予定ですが、つい他のものを優先してしまって……。 ID3v2タグの読み込みについては、現在まだJPlaylistEditorしか対応していません。 必要であればそちらもダウンロードしてください。(musicフォルダに入っているID3v2_3.javaです) 少しでもお役に立てれば光栄です。
プログラム内で意図をくみ取れない部分は説明しますので、気軽に質問してください。 (返答まで数日かかるかもしれないので、急ぎでなければ) 研究頑張ってください。 |
No.69 2011/11/21(Mon) 00:00:23
|
| |
|
ご親切にどうもありがとうございます。
早速ですが、お聞きしたいことが… 仕様ではJFilechooserでファイルを指定して、読み込み再生をしていますが、こちらからファイルのパスなどを与えて、その曲を読み込み再生させたいと思っています。 そこで、「openOperationメソッド」の引数に音楽ファイルの配列を いれましたがうまくいきません。 また「importFiles」や「currentFile」に直接入れてるとどうにか再生されますが、スライダー等のが反応しなくなってしまいます。 (おそらく読み込むという作業をせずに、とりあえず再生だけしているからだと思いますが…)
こういった場合は、「importFiles」や「currentFile」、また「openOperationメソッド」など、どこに音楽ファイルのパスなどを与えればよろしいですか? |
No.70 2011/11/23(Wed) 18:10:57
|
| |
|
はい、回答します。 音楽ファイルを再生する正答は 1.openOperationに音楽ファイルの配列を指定する 2.playにcurrentFileのパスを指定する です。
以下詳細です。 openOperationは『ファイルを開く』処理を担当します。(開くだけです) 最終的な目的は、指定ファイルをimportFilesに格納することです。importFilesの先頭ファイル(importFiles[0])がcurrentFileになります。 具体的な処理内容は以下になります。
1.SCENE.UNLOAD以外(つまり音楽読み込み済み)であれば音楽再生をストップする。そうでなければ(音楽を初めて読み込む場合は)スライダーを有効化します。(起動直後の状態では無効化されているため) ここで実施しているスライダー有効化は、スライダーを操作可能とすると共に、MouseListenerを登録しています。このMouseListener登録により、スライダー操作による音楽シーク機能を有効にしています。(処理詳細はSliderMouseListenerを参照してください) つまり、openOperationのこのスライダー有効化処理を実施しなれけばスライダーは使用できません。
2.入力されたファイルの中にm3uプレイリストファイルが存在すれば、m3uファイルを、プレイリストに登録された個別の音楽ファイル情報に変換します。その後、各音楽ファイルをimportFilesに登録します。
3.ランダム再生になっている場合、importFilesをシャッフルし、importFiles[0]をcurrentFileに設定します。
その後、play(String path)にcurrentFileを指定して音楽再生を開始しています。
つまり、openOperationで ・スライダーの有効化 ・importFilesに音楽ファイルを設定し、currentFileに再生対象のファイルを設定。(importFiles, currentFile双方を設定) を実施し、その後にplayメソッドを呼ぶことで再生を開始しています。 質問に対する回答は最初に提示した 1.openOperationに音楽ファイルの配列を指定する 2.playにcurrentFileのパスを指定する です。
とりあえずはopenOperation(音楽ファイルの配列)→play(currentFile.getPath())を試してみてください。 それで再生できない場合は、MusicPlayerで正常にopenできていません。(内部的な話で言えば、MusicPlayerでopenしてplayするだけなので) 再生できてもスライダーが使用できない場合は、スライダー有効化の箇所がちゃんと処理されているか確認してください。 openOperationにある slider.setEnabled(true); slider.addMouseLisntener)new SliderMouseListener()); がなければスライダーは使えません。 上記で解決できない場合は、僕のプログラム外で何かしらの干渉があるはずですので、そこは名推理をお願いします。
ではでは。ファイトしてくださいな。 |
No.71 2011/11/24(Thu) 01:35:29
|
|