2010-12-17

mediaplayerを作ってみる(13)

また忍者ブログに置いときます。

random。ディレクトリを越えて。

SDMP13_1 http://sattva.asasvata.net/Entry/20/

SDMP13_2 http://sattva.asasvata.net/Entry/21/

SDMP13_3 http://sattva.asasvata.net/Entry/22/

12/18追加 SDMP13_4 http://sattva.asasvata.net/Entry/23/

色々さまよった結果、3つ目のに落ち着きました。

12/18 ↑はずでしたが、たぶんもうちょっと変更します。

主な変更点

MusicDirListMakerの引数にArrayListを追加。合計3つ。
で、追加したやつに音楽ファイルをとりあえず詰め込む。
あと、地味にsortもしてます。

ほいで、Activityで、音楽ファイルの総数を確保してから
とりあえず、clear。

で、randomボタンと言うかCheckBox。


public void onClickRandom(View view) {

allMusicList.clear();//clearしときます
addNumList();//sortしときます。

Resources res = getResources();//なんとなく、使ってみる。

if (randomFlag) {

repeatButton.setClickable(true);
shuffleButton.setClickable(true);

     repeatButton.setTextColor(res.getColor(R.color.red));
     shuffleButton.setTextColor(res.getColor(R.color.red));
    
randomFlag = !randomFlag;
} else {

     repeatButton.setChecked(false);
     shuffleButton.setChecked(false);
    
     repeatButton.setClickable(false);
     shuffleButton.setClickable(false);
    
     repeatButton.setTextColor(res.getColor(R.color.dark_red));
     shuffleButton.setTextColor(res.getColor(R.color.dark_red));
    
     randomFlag = !randomFlag;
}
}

repeatButtonとshuffleButtonを、無効にしてテキストの色を暗く。
押す度に、allMusicList.clear();をしてますが、まあ、お好みで。

で、MusicPlayer。

plauMusic内

//Stringに変換
str = "" + dirNum + musicNum;
//全体の80%を越えたらクリアー。なんとなく。
if (allMusicList.size() > (totalMusicCount * 8 / 10)) allMusicList.clear();
//allMusicListに含まれてなければ
if (!allMusicList.contains(str)) allMusicList.add(str);

randomButton.isChecked()が、無いのはなんとなく。
というか、randomButtonを押す度にclearしてなかった時の名残りです。
まあ、いいかと。

で、onCompletion内

while(true) {
//ランダムにディレクトリを変更
dirNum = (int)(Math.random() * dirList.size());
//リストの詰め替え
sdmp.getMflm().musicFileListMaker(dirList.get(dirNum), musicList);
//カウントもランダムに変更
count = (int)(Math.random() * musicList.size());
//Stringに変換
str = "" + dirNum + count;
//allMusicListに含まれていなければ、つまりrandom開始後再生されていなければ
if (!allMusicList.contains(str)) break;
}

一応これで、再生済みの曲をはじけます。
が、なにぶんMath.random()を使っているので
残りが少なくなる(再生済みの曲が増える)と、
当たりを引くまで時間がかかりそう。

なので、playMusicのほうで、80%ぐらいでclearするようにしたんですが、
まあ、お好みで。

あと、読み込むファイルがmp3とwmaに変わってます。

ーーこれ以下、与太話。ーー

なんかねー。基金訓練にいく前に(16時すぎに始まるんですわ)
携帯ショップをのぞいたらgalaxyが在庫有りになってて
思わず機種変更してしまいまして。

で、そこに貼ってあったスペック表に、mp3/wma再生可能
なんてかいてあったんで。まあ、ついでに。

時間が無かったんで登録だけしといて受け取りは、翌日。(つまり今日)
まあ、結局遅刻したんで、遅れついでに受け取っとけば良かったんですが。

結構ちょこちょこ入荷してるらしいです。予約分は、はけたんですかね。
まあ、気にしてもしょうがないですが。

こんなことなら、is01いらなかった。
まあ、(普通の)TVなし生活中なので、is01のワンセグは有難いんですが。

何かここんとこ出費が多い。あぶく銭が入ったんで。
定職についてないんだから、貯金するべきなんだろうけど。

カバンとか、防風ジーンズとか。そんで、galaxy。

防風ジーンズ。ユニクロの。結構いいです。
そんな寒いとこじゃないんですが、バイクを常用しているので。
寒くないとは言わないが、かなりマシ。
普通に歩いてるだけなら、これだけで充分。パッチいらず。
(パッチ・・・股引。ここではヒートテック含む。)

カバンは、撥水の。ポリウレタン?何かそんなやつ。
まあ、バイク用。少々の雨なら大丈夫。カバンは。本人は大丈夫じゃないけど。

で、galaxy。衝動的に。・・・。

まあ、受け取ったらとりあえずこれを入れてみます。
エミュレーターだと2.3でも動いてるけど、2.2の実機でどうなるか。

ちょっと楽しみ。結構不安。まあ、結果はまた。

0 件のコメント:

コメントを投稿