web-dev-qa-db-ja.com

メディアプレイヤーを再開するには?

メディアプレーヤーを使用しています。

プレーヤーを開始、停止、一時停止するオプションがあります。私が抱えている問題は、以前に一時停止されていたポイントから曲を再開するオプションが見つからないことです。

どんな助けも提供してくれると本当に助かります。

29
Prateek Raj

あなたの注意をありがとう、しかし私はそれを自分で持っています

私が使用したMediaplayerを一時停止した:

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

そして、プレイヤーが最近停止した位置から再開するには、次のようにします。

Mediaplayer.seekTo(length);
Mediaplayer.start();
101
Prateek Raj

ここにあるドキュメントを確認する必要があると思います: http://developer.Android.com/reference/Android/media/MediaPlayer.html

ドキュメントからの引用:

再生の一時停止と停止、現在の再生位置の調整ができます。再生はpause()を介して一時停止することができます。 pause()の呼び出しが戻ると、MediaPlayerオブジェクトはPaused状態になります。開始済み状態から一時停止状態へ、またはその逆への遷移は、プレーヤーエンジンで非同期に発生することに注意してください。 isPlaying()の呼び出しで状態が更新されるまでに時間がかかる場合があり、ストリーミングされたコンテンツの場合は秒数になることがあります。

  • Start()を呼び出して、一時停止したMediaPlayerオブジェクトの再生を再開します。再開した再生位置は、一時停止した場所と同じです。 start()への呼び出しが戻ると、一時停止したMediaPlayerオブジェクトはStarted状態に戻ります。
  • Pause()を呼び出しても、すでに一時停止状態にあるMediaPlayerオブジェクトには影響しません。

州は説明した:

States of MediaPlayer

MediaPlayerのstart()メソッドから引用します

public void start()

再生を開始または再開します。以前に再生が一時停止されていた場合、再生は一時停止されたところから続行されます。再生が停止されていた、または開始されたことがない場合、再生は最初から開始されます。

質問に直接回答するには、一時停止したMediaPlayerインスタンスを一時停止したところから再開するには、そのインスタンスで再度start()を使用します。

27
Maciej Pigulski

受け入れられた答えでは、正しい順序は次のとおりです。

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

15
Hoven

再生用と一時停止用の2つのボタンを使用する場合、以下のコードが機能し、試行されます。

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


                  }
                });
1
Mohamed Haridy

SeekToを使用すると、トラックの最初から再生が開始され、seekToが設定された場所から再生が続くことがよくありました。

私のために働いたのは、ボリュームをミュートし、currentProgressが現在のシーク(グローバルに保存されている)と一致したらボリュームを上げ直したことです。

0
James Smith
   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);
    }
}

再生と一時停止の2つのボタンを作成します。そして、このコードを使用します。それは私のために働いた。

0
Mohaize Jefrin