startActivityForResult を使用してリストビューから音楽ファイルのパスを取得し、その文字列を MediaPlayer に設定します。MediaPlayer.setDataSource(STRING);
初めてボタンで曲を再生すると、すべて正常に再生されます。曲の再生中にボタンをクリックすると、リセットされて再度再生されます。
if (mMediaPlayer.isPlaying()) {
mMediaPlayer.reset();
}
しかし、再生が完了したボタンをタップすると、再び再生されません。
startActivityForResult
Intent i = new Intent(MainActivity.this, Activityone.class);
startActivityForResult(i, 0);
mMediaPlayer.reset();
リストビューで:
music_column_index = musiccursor
.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA);
String filename = musiccursor.getString(music_column_index);
Intent person = new Intent();
Bundle backpack = new Bundle();
backpack.putString("arnswer", filename);
person.putExtras(backpack);
setResult(RESULT_OK, person);
finish();
onActivityResult :
if (resultCode == RESULT_OK){
if(requestCode == 0) {
// handling code of startActivityForResult of first button
Bundle basket = data.getExtras();
s = basket.getString("arnswer");
}
および MediaPlayer を開始するためのボタン:
public void pbutton1(View view) {
try {
if (mMediaPlayer.isPlaying()) {
mMediaPlayer.reset();
}
mMediaPlayer.setDataSource(s); //using string here
mMediaPlayer.prepare();
mMediaPlayer.start();
} catch (Exception e) {
}
LogCat :