【问题标题】:How to resume the mediaplayer?如何恢复媒体播放器?
【发布时间】:2011-04-20 18:54:38
【问题描述】:

我正在使用媒体播放器。

我可以选择启动、停止和暂停播放器。我遇到的问题是我找不到从之前暂停的点恢复歌曲的选项..

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

【问题讨论】:

    标签: android media-player


    【解决方案1】:

    感谢您的关注,但我自己搞定了

    暂停我使用的媒体播放器:

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

    并且要从最近停止的位置恢复播放器,请执行以下操作:

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

    【讨论】:

    • 它在 Galaxy tab 2 上对我有效,但在 Acer Iconia 或 Nexus 7 上无效。我不知道从非 0 位置开始播放器有什么问题,但显然有些问题。跨度>
    • 这对我不起作用!没有错误,但声音不会恢复!我的错误是什么?
    • 我不必使用MediaPlayer.seekTo(length);正如文档所述,我只是调用了 MediaPlayer.start() 并恢复了(请参阅下面的答案)。
    【解决方案2】:

    我认为您应该阅读此处找到的文档: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()。

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          【解决方案5】:
             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】:

            这样怎么样?

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-07-24
              • 2012-08-05
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多