gpt4 book ai didi

java - MediaPlayer 只播放一次

转载 作者:行者123 更新时间:2023-11-30 03:45:36 24 4
gpt4 key购买 nike

我使用 startActivityForResult 从 ListView 中获取音乐文件的路径,然后使用 MediaPlayer.setDataSource(STRING); 为 MediaPlayer 设置该字符串。如果我在播放歌曲时单击按钮,它将重置并再次播放。

  if (mMediaPlayer.isPlaying()) {
mMediaPlayer.reset();
}

但是如果我点击按钮播放完成它不会再播放。

开始 Activity 结果

Intent i = new Intent(MainActivity.this, Activityone.class);
startActivityForResult(i, 0);
mMediaPlayer.reset();

在 ListView 中:

 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();

关于 Activity 结果:

  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) {

}

登录目录:

enter image description here

最佳答案

我认为您需要 mMediaPlayer.seekTo(0) 才能重播,因为它已经完成。

See the android doc page .


编辑:

看图enter image description hereStarted <-> PlaybackCompleted 之间似乎只是为了重新启动播放器的一个 Action ......你不需要 prepare 你有:( ...

我明白为什么你想要准备 所以我建议 OnCompletetionListenermMediaPlayer.stop() 所以至于移动到 Stopped 状态并为下一个 prepare() 做好准备!

关于java - MediaPlayer 只播放一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15054190/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com