如何恢复媒体播放器?

时间:2010-10-04 12:21:53

标签: android media-player

我正在使用媒体播放器。

我可以选择启动,停止和暂停播放器。我遇到的问题是我找不到从以前暂停的那一天开始恢复歌曲的选项。

任何提供的帮助都会非常有用。

7 个答案:

答案 0 :(得分:101)

感谢您的关注,但我自己也有了

暂停我使用的Mediaplayer:

Mediaplayer.pause();
length=Mediaplayer.getCurrentPosition();

并且从最近停止的位置恢复玩家是通过以下方式完成的:

Mediaplayer.seekTo(length);
Mediaplayer.start();

答案 1 :(得分:27)

我认为您应该查看此处的文档:http://developer.android.com/reference/android/media/MediaPlayer.html

来自文档的一些引用:

  

可以暂停和停止播放,   并且当前播放位置可以   调整。播放可以暂停   通过暂停()。当暂停的调用()   返回,MediaPlayer对象进入   暂停状态。请注意   从Started状态转换为   暂停状态,反之亦然   在播放器中异步发生   发动机。可能需要一些时间   状态在呼叫中更新   isPlaying(),它可以是一些   流式传输时的秒数   内容。

     
      
  • 调用start()恢复   播放已暂停的MediaPlayer   对象,以及恢复播放   位置与它的位置相同   暂停。当调用start()时   返回,暂停的MediaPlayer对象   回到已启动状态。
  •   
  • 调用pause()对a没有影响   已经在的MediaPlayer对象   暂停状态。
  •   

各州解释说:

States of MediaPlayer

引用MediaPlayer的start()方法

  

public void start()

     

开始或恢复   回放。如果以前播放过   暂停后,播放将继续   从它暂停的地方。如果播放   已经停止,或从未开始   之前,播放将从   开始。

因此,要直接回答您的问题,要从暂停的位置恢复暂停的MediaPlayer实例,请在该实例上再次使用start()。

答案 2 :(得分:15)

在接受的答案中,正确的顺序是:

Mediaplayer.start();
Mediaplayer.seekTo(length);

答案 3 :(得分:1)

如果您使用两个按钮进行播放,一个用于暂停,则以下代码正在运行并尝试:

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


                  }
                });

答案 4 :(得分:0)

当使用seekTo时,我发现它经常在曲目的开头播放,然后从seekTo设置的位置继续播放。

对我有用的是静音音量,然后在currentProgress与当前搜索匹配(存储在全局)时将其重新启动。

答案 5 :(得分:0)

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

制作两个播放和暂停按钮。并使用此代码。它对我有用。

答案 6 :(得分:-1)

这是怎么回事?

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