そういえば、一応目標を。と言うか、理想の完成形を。
1・・・SDカードのいくつかのディレクトリから音楽ファイルを読み込む。
2・・・ListViewに表示する。
3・・・ListViewをタッチすると音楽が聴ける。
4・・・ディレクトリ内で連続再生 。
5・・・ディレクトリをまたいで連続再生。
6・・・ランダム再生。
こんな感じ。
前回のでは、曲が終わると止まってしまう。
まず、これを何とかしようと。ここなどを参考に。(ちょっと下の方)
OnCompletionListenerとやらで、何とかなりそう。
変更点だけ書いていきます。
フィールドの
private static int num = 0; を private int musicNum; に
なんかこの方が良さそうなので。
implementsに MediaPlayer.OnCompletionListener を追加。
//mpの生成 のとこを
mp = new MediaPlayer();
mp.setOnCompletionListener(this); //ここと
musicNum = 0; //ここを追加
で、一番下に
public void onCompletion(MediaPlayer mp) {
if (++musicNum < musicList.size()) playMusic();
else {
musicNum = 0;
playMusic();
}
}
を追加。
で、このままだと1曲終わるまで動きが確認できないのでボタンを1つ追加。
<Button
android:id="@+id/skip_button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/skip_button">
</Button>
ボタンのテキストをstringに追加。
<string name="skip_button">skip</string>
なんか英語。あってるんだろうか。英語力がないのが残念。
で、↓を追加。他のボタンの下あたりに適当に。
btnSkip = (Button)findViewById(R.id.skip_button);
btnSkip.setOnClickListener(this);
この書き方でなく、ここを参考にして書き直したほうがいいかも。
僕は、まあ、そのうち。
それと、ボタンイベントを追加。btnStopの次に。(else ifの { の閉じた後)
} else if (view == btnSkip) {
int duration = mp.getDuration();
mp.seekTo(duration - 3000);
}
これで、残り3秒まで飛びます。続けて再生してるか確認しやすい。
最近気づきました。
実は一度、完成形間近まで作ったんですが、コードが読みにくいし、
ちょっと行き詰まったので、ここに書きながら作り直してます。
まあ、それはそれで動いてるんですが。あまり色々操作をしなければ。
例の8円運用 is01に 取り込んでみて、今もそれで音楽を聴いてます。
でもねー、なんかねー、と言う感じなんですわ。色々と。
なので、あせらず急がず。ちょとづつ。なるべく、読みやすく。
いつか、完成するんだろうか。しないかも。
まあ、それはそれで。
0 件のコメント:
コメントを投稿