2010-10-04 117 views
22

我正在使用媒體播放器。如何恢復媒體播放器?

我可以選擇啓動,停止和暫停播放器。我遇到的問題是,我找不到恢復歌曲的選項,以前它已暫停。

任何幫助提供將是非常有益的。

回答

89

謝謝您的關注,但我有我自己

用於暫停媒體播放器我用:

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

,並從那裏最近停止時所做的位置恢復播放器:

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

謝謝,它對我來說很好, – Hasmukh 2012-09-14 10:19:16

+0

它在Galaxy選項卡2上爲我工作,但沒有在宏基Iconia或Nexus 7上工作。我不知道從不是0的位置開始播放器有什麼問題,但很明顯有些事情是。 – Mark 2013-03-01 09:23:14

+0

這不適合我!沒有錯誤,但聲音不會恢復!我的錯誤是什麼? – ConductedClever 2014-09-21 13:58:17

23

,我認爲你應該通過這裏找到的文檔:http://developer.android.com/reference/android/media/MediaPlayer.html

一些報價從文檔:

回放可以暫停和停止, 和當前播放位置可以 進行調整。播放可通過暫停()暫停 。當呼叫暫停() 返回時,MediaPlayer對象輸入 暫停狀態。請注意, 從啓動狀態轉換到 暫停狀態,反之亦然 在播放器 引擎中異步發生。 可能需要一些時間才能更新 isPlaying()的調用狀態,並且在流式內容 的情況下,它可以是 秒的數字。

  • 調用start()以恢復 回放暫停的MediaPlayer的 對象,並續回放 位置是相同的,其中它是 暫停。當對start() 的調用返回時,已暫停的MediaPlayer對象 將返回到已啓動狀態。
  • 調用暫停()對已在 暫停狀態的 MediaPlayer對象沒有影響。

國解釋說:

States of MediaPlayer

和報價從MediaPlayer的

公共無效的start()的start()方法

開始或恢復 回放。如果播放先前已經暫停 ,播放將從暫停的位置繼續播放 。如果播放 已停止,或從未開始 ,播放將從 開始。

因此,要直接回答您的問題,要從已暫停的位置恢復暫停的MediaPlayer實例,請在該實例上再次使用start()。

12

在接受的答案,正確的順序是

Mediaplayer.start();

Mediaplayer.seekTo(length);

+0

感謝這! – ASP 2014-12-03 09:02:40

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

當使用seekTo時,我發現它經常開始播放音軌的開頭,然後繼續從seekTo的設置點開始播放。

什麼工作對我來說是靜音音量,然後曲柄它備份一次currentProgress符合當前尋求(存儲在全局)。

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

製作播放和暫停的兩個按鈕。並使用此代碼。它爲我工作。