今回も、修正とちょっと改造。なかなか先に進まない。
色々修正してから進んだ方が、後が楽かなーと。
で、MusicPlayerから。
public void setTitle() {
titleView.setText((dirNum + 1) +
"-" + (musicNum + 1) + ":" + musicList.get(musicNum));
}
タイトルにディレクトリの番号を追加。Activityは、
//spinnerの取得とArrayAdapterの生成及びセット
spinner = (Spinner)findViewById(R.id.spinner);
ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item);
int n = 0;
for(String name : musicDirList) {
++n;
spinnerAdapter.add(n + ":" + name);
}
spinnerに番号追加。こんな簡単とは。なんだかなー。
そいで、onItemSelectedの最後に
changeMusicFlag = false;
追加。最後じゃなくてもいいかも。未確認。
それから、
//色々セットして再生
public void setAndPlayMusic() {
//ディレクトリが変わってたらmusicFileList(MusicPlayerが参照してる方)
//の中身を詰め替え。listViewと同じにする。
if (spinnerPosition != musicPlayer.getDirNum()) {
musicFileList.clear();
for (String fileName : fileListForListView) {
musicFileList.add(fileName);
}
musicPlayer.setDirNum(spinnerPosition);
}
musicPlayer.setMusicNum(listPosition);
musicPlayer.playMusic();
changeMusicFlag = false;
}
こんなメソッドを作成。同じのが、3回出てきたので。まとめただけ。
どっか適当に置いといてください。
そして、onItemClick
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//2度押しで再生。基本、再生ボタンと同じ。
if (changeMusicFlag && startFlag && position == listPosition) {
setAndPlayMusic();
} else {
//曲の選択をするだけ。再生はしない。とりあえず。
listPosition = position;
musicNum_listClicked = musicPlayer.getMusicNum();
changeMusicFlag = true;
startFlag = true;//1曲目なんか選択されたら。それだけのため。
}
}
リストビュー2度押しで再生出来るようにしました。1度では再生しない。
あえて。 そいから、onClickStartの中、
if (!musicPlayer.isPlaying()){
//停止中にlistViewで曲変更した場合
if (changeMusicFlag) {
setAndPlayMusic();
}
さっきのメソッドに変えただけ。同じく、
//再生中で曲選択が変わってたら。つまり、listViewで選択した場合です。
if (changeMusicFlag && musicNum_listClicked == musicPlayer.getMusicNum()) {
setAndPlayMusic();
場所分かるかな。まあ、何とか探してください。
も一つ、
public void onClickPause(View view) {
if (musicPlayer.isPlaying()) {
musicPlayer.pause();
pauseFlag = true; //ここのみtrueに。
} else {
if (pauseFlag) {
musicPlayer.start();
pauseFlag = false;
}
}
}
一時停止ボタンでも、pause解除出来るようにしました。
最後に、setTitle
titleView.setText((musicPlayer.getDirNum() + 1) +
"-" + (n + 1) + ":" + musicFileList.get(n));
ディレクトリの番号を追加。MusicPlayerと同じく。
リストと再生中の曲のディレクトリが違う状況では、
番号が合った方がいいかなーと。
だいぶ修正したけども、まだ修正出来てないとこも。
一時停止してホームボタンを押す。
起動する。
再生する。
と、なんか一曲進むときが。進まない時もある。
onPauseとか、onResumeとか、よくわかってないんで。
なんか、そのせいだと思ってるけど。ちがうかも。
これは、ほっとく。たぶん。そのうち。いずれ。また。
次は、次こそ、ディレクトリをまたいでの連続再生。
前作ったのの遺産がまだあるので、たぶん大丈夫。
なので、おまけも。まあ、予定は未定で。
0 件のコメント:
コメントを投稿