我使用startActivityForResult從列表視圖中獲取音樂文件的路徑,然後使用MediaPlayer.setDataSource(STRING);
爲MediaPlayer設置該字符串第一次使用按鈕播放歌曲時,它會播放所有權限,如果在歌曲播放時單擊按鈕玩它會重置並再次播放。MediaPlayer只播放一次
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:
這隻會播放聲音的兩倍。 – 2013-02-24 17:21:37
好多了!添加了其他建議! – madlymad 2013-02-24 17:34:09
我剛剛添加了OnCompletionListener並添加了mMediaPlayer.stop(),仍然是相同的結果,在歌曲完成後它不能再次播放,直到我再次加載它 – 2013-02-24 17:40:42