2010-12-10

mediaplayerを作ってみる(11)-1

ファイルを、忍者ブログに置いときました。

http://sattva.asasvata.net/Entry/15/

書かなくてもいいような気もしますが一応。
shuffleへの下準備を。MusicPlayerから。
フィールドに

private ArrayList<Integer> numList; 追加。
private int count; 追加。

コンストラクタに

count = 0; 追加。

public ArrayList<Integer> getNumList() {
return numList;
}

public void setNumList(ArrayList<Integer> array) {
numList = array;
}

public int getCount() {
return count;
}

public void setCount(int n) {
count = n;
musicNum = numList.get(count);//これは、いらないかも
}

追加。要らないのもあるかも。
ほいで、playMusic

musicNum = numList.get(count); 追加。

setTitle()の上に。
次は、onCompletion

++musicNum を ++count に変更。
musicNum = 0 を count = 0 に変更。

sdmp.getMflm().musicFileListMaker(dirList.get(dirNum), musicList);
の下に、

addNum(); 追加。2ヶ所とも。それから、

public void addNum() {
numList.clear();
for (int i = 0; i < musicList.size(); i++) {
numList.add(i);
}
}

追加。Activityは、フィールドに

private ArrayList<Integer> musicNumList; 追加。

onCreate内

musicFileList = new ArrayList<String>(); 追加。
musicNumList = new ArrayList<Integer>(); 追加。

onItemSelected内

if (musicFileList == null) {
musicFileList = new ArrayList<String>();
     mflm.musicFileListMaker(musicDirList.get(position), musicFileList);
}
を、

if (!startFlag) {
     mflm.musicFileListMaker(musicDirList.get(position), musicFileList);    
     addNumList();
}

に変更。それと、

musicPlayer.setNumList(musicNumList); 追加。

で、onClickBack内

int n = musicPlayer.getCount() - 1; に変更。

if (repeatButton.isChecked())のとこ

n = musicPlayer.getNumList().size() - 1;
musicPlayer.setCount(n);

に変更。それから、

musicPlayer.setDirNum(num);
mflm.musicFileListMaker(musicDirList.get(num), musicFileList);

を、

changeMusicList(num); に変更。


その下を

n = musicPlayer.getNumList().size() - 1;
musicPlayer.setCount(n);

に変更。2ヶ所とも。あと、一番下の} else {のとこ

musicPlayer.setCount(n); に変更。

そいで、onClickNext

int n = musicPlayer.getCount() + 1; 変更。

if (n < musicPlayer.getNumList().size()) {
musicPlayer.setCount(n); 

に変更。ほいで、n = 0;の下

musicPlayer.setCount(n); 変更。

そいから、

musicPlayer.setDirNum(num);
mflm.musicFileListMaker(musicDirList.get(num), musicFileList);
を、

changeMusicList(num);

に変更。2ヶ所とも。それと、setAndPlayMusicを、

private void setAndPlayMusic() {

if (spinnerPosition != musicPlayer.getDirNum()) {
changeMusicList(spinnerPosition);
}

     musicPlayer.setCount(listPosition);
musicPlayer.playMusic();
changeMusicFlag = false;    
}

に変更。あとは、

private void addNumList() {
musicNumList.clear();
for (int i = 0; i < musicFileList.size(); i++) {
musicNumList.add(i);
}
}

private void changeMusicList(int num) {
musicPlayer.setDirNum(num);
mflm.musicFileListMaker(musicDirList.get(num), musicFileList);
addNumList();
}

を追加。たぶんこんだけ。

ちょっとした思いつきなんですが、うまくいくか・・・。
まあ、大体で。

ファイルは、一応ダウロードできることを確認。
が、自分だからかも。まあ、大体で。

0 件のコメント:

コメントを投稿