【发布时间】:2011-04-20 18:54:38
【问题描述】:
我正在使用媒体播放器。
我可以选择启动、停止和暂停播放器。我遇到的问题是我找不到从之前暂停的点恢复歌曲的选项..
提供的任何帮助都会非常有帮助。
【问题讨论】:
标签: android media-player
我正在使用媒体播放器。
我可以选择启动、停止和暂停播放器。我遇到的问题是我找不到从之前暂停的点恢复歌曲的选项..
提供的任何帮助都会非常有帮助。
【问题讨论】:
标签: android media-player
感谢您的关注,但我自己搞定了
暂停我使用的媒体播放器:
Mediaplayer.pause();
length=Mediaplayer.getCurrentPosition();
并且要从最近停止的位置恢复播放器,请执行以下操作:
Mediaplayer.seekTo(length);
Mediaplayer.start();
【讨论】:
MediaPlayer.seekTo(length);正如文档所述,我只是调用了 MediaPlayer.start() 并恢复了(请参阅下面的答案)。
我认为您应该阅读此处找到的文档:http://developer.android.com/reference/android/media/MediaPlayer.html
文档中的一些引用:
播放可以暂停和停止, 并且当前播放位置可以 进行调整。可以暂停播放 通过暂停()。当调用 pause() 返回,MediaPlayer 对象进入 暂停状态。请注意, 从 Started 状态转换到 暂停状态,反之亦然 在播放器中异步发生 引擎。之前可能需要一些时间 状态在调用中更新 isPlaying(),它可以是多个 流式传输的秒数 内容。
- 调用 start() 来恢复 播放暂停的 MediaPlayer 对象,并恢复播放 位置和原来一样 暂停。当调用 start() 返回,暂停的 MediaPlayer 对象 回到 Started 状态。
- 调用 pause() 对 已经存在的 MediaPlayer 对象 暂停状态。
状态解释:
并引用 MediaPlayer 的 start() 方法
public void start()
开始或继续 回放。如果以前播放过 已暂停,播放将继续 从它暂停的地方。如果播放 已停止,或从未启动 之前,播放将从 开始。
因此,要直接回答您的问题,要从暂停的点恢复暂停的 MediaPlayer 实例,请在该实例上再次使用 start()。
【讨论】:
在接受的答案中,正确的顺序是:
Mediaplayer.start();
Mediaplayer.seekTo(length);
【讨论】:
如果您使用两个按钮,一个用于播放,一个用于暂停,则以下代码正在运行并尝试:
playbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mPlayer = MediaPlayer.create(MainActivity.this,
R.raw.adhan);
if (mPlayer.isPlaying()) {
} else {
mPlayer.seekTo(length);
mPlayer.start();
}
}
});
pausebtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mPlayer.pause();
length = mPlayer.getCurrentPosition();
}
});
【讨论】:
public class MainActivity extends AppCompatActivity {
MediaPlayer mediaPlayer;
public void play(View view) {
mediaPlayer.start();
}
public void pause(View view){
mediaPlayer.pause();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mediaPlayer= MediaPlayer.create(this,R.raw.someaudio);
}
}
制作两个按钮用于播放和暂停。并使用此代码。它对我有用。
【讨论】:
这样怎么样?
package com.mycompany.audiodemo;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.media.MediaPlayer;
import android.view.View;
public class MainActivity extends AppCompatActivity {
MediaPlayer mediaPlayer=null;
int playPosition=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mediaPlayer = MediaPlayer.create(this,R.raw.sampleaudio);
}
public void playAudio(View view){
//mediaPlayer.seekTo(playPosition);
mediaPlayer.start();
}
public void pauseAudio(View view){
mediaPlayer.pause();
//playPosition = mediaPlayer.getCurrentPosition();
}
}
【讨论】: