2012-02-27 225 views
17

在我的項目,我用下面的代碼Android的媒體播放器播放/暫停按鈕

MediaPlayer mPlayer = MediaPlayer.create(MyActivity.this, R.raw.myfile); 
mPlayer.start(); 

上面是在播放按鈕的onclick編碼玩android的媒體播放器的音樂文件。 我想通過再次點擊相同的按鈕來暫停播放.ie)播放/暫停的單個按鈕。 我該怎麼做。

回答

41

你可以使用簡單的if-check來處理暫停。試試這個:

if(mPlayer.isPlaying()){ 
    mPlayer.pause(); 
} else { 
    mPlayer.start(); 
} 
8

請嘗試這種::

final Button bPlay = (Button) findViewById(R.id.bPlay); 
MediaPlayer song1 = MediaPlayer.create(tutorialFour.this, R.raw.fluet); 
Button bStop = (Button) findViewById(R.id.bStop); 
bPlay.setWidth(10); 

song1.setOnCompletionListener(new OnCompletionListener() { 

     public void onCompletion(MediaPlayer mp) { 

      bPlay.setText("Play"); 


     } 
    }); 

bPlay.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      b = true; 

      if (bPlay.getText().equals("Play") && b == true) { 

       song1.start(); 

       bPlay.setText("Pause"); 
       b = false; 
      } else if (bPlay.getText().equals("Pause")) { 
       x = song1.getCurrentPosition(); 
       song1.pause(); 
       bPlay.setText("Resume"); 
       Log.v("log", "" + x); 
       b = false; 
      } else if (bPlay.getText().equals("Resume") && b == true) { 
       song1.seekTo(x); 
       song1.start(); 
       bPlay.setText("Pause"); 
       b = false; 
      } 


     } 

    }); 
5

裏面的按鈕,單擊檢查mediaPlayer.isPlaying()。如果媒體播放器正在播放其他錯誤,這將返回true。

因此,與現在這個樣子,標誌值,你可以做一個if語句,然後切換到播放或暫停這樣的,

button.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View view) { 

      if (mediaplayer.isPlaying()) { 
       mediaplayer.pause(); 
      } else { 
       mediaplayer.start(); 
      } 
     } 
    }); 
3

下面的代碼與前後沿需要你的播放/暫停按鈕單擊事件的護理在提供的搜索欄上進行前向和後向搜索按鈕(與媒體軌道同步)。目前它只播放一首歌曲。但是,您可以添加到此。這是我第一個使用mediaplayer class的媒體播放器,所以你可能會覺得它有點原始。但是,如果你需要,你也可以看看VideoView的例子。由於標準媒體控制檯已經以預定義小部件的形式出現,因此使用VideoView顯然更容易。這使設計玩家變得更容易。

package in.org.Test; 

import android.app.Activity; 
import android.media.MediaPlayer; 

import android.os.Bundle; 

import android.view.View; 
import android.view.View.OnClickListener; 

import android.widget.ImageButton; 

import android.widget.ProgressBar; 
import android.widget.SeekBar; 

import android.widget.Toast; 

public class Test12Activity extends Activity implements OnClickListener,Runnable { 

    private static final String isPlaying = "Media is Playing"; 
    private static final String notPlaying = "Media has stopped Playing"; 

    private SeekBar seek; 

    MediaPlayer player = new MediaPlayer(); 
    private ImageButton plus,minus; 

    ImageButton im; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     plus = (ImageButton) findViewById(R.id.imageButton2); 
     minus = (ImageButton) findViewById(R.id.imageButton3); 


     player = MediaPlayer.create(this, R.raw.sound2); 


     player.setLooping(false); 
     im = (ImageButton) this.findViewById(R.id.imageButton1); 


     seek = (SeekBar) findViewById(R.id.seekBar1); 
     seek.setVisibility(ProgressBar.VISIBLE); 
     seek.setProgress(0); 
     seek.setMax(player.getDuration()); 
     new Thread(this).start(); 


     im.setOnClickListener(this); 
     player.start(); 

     Toast.makeText(this, isPlaying, Toast.LENGTH_LONG).show(); 


     plus.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { int cu = player.getCurrentPosition(); player.seekTo(cu-5000); }}); 
     minus.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) {int cu = player.getCurrentPosition(); player.seekTo(cu+5000);}}); 


    } 


    @Override 
    public void onClick(View arg0) { 
     if (arg0.getId() == R.id.imageButton1) { 
     if(player.isPlaying()) { 
     player.pause(); 

     Toast.makeText(this, notPlaying, Toast.LENGTH_LONG).show(); 
     ImageButton img1=(ImageButton) this.findViewById(R.id.imageButton1); 

     img1.setImageResource(R.drawable.play); 

     } 
     else 
     { 
      player.start(); 
      Toast.makeText(this, isPlaying, Toast.LENGTH_LONG).show(); 

      ImageButton img1=(ImageButton) this.findViewById(R.id.imageButton1); 
      img1.setImageResource(R.drawable.pause); 
     } 
     } 
     } 

    @Override 
    public void run() { 
     int currentPosition= 0; String s; 
     int total = player.getDuration(); 
     while (player!=null && currentPosition<total) { 
      try { 
       Thread.sleep(1000); 
       currentPosition= player.getCurrentPosition(); 
      } catch (InterruptedException e) { 
       return; 
      } catch (Exception e) { 
       return; 
      }    

      seek.setProgress(currentPosition); 


     } 


    } 
} 
1
MediaPlayer mpE = MediaPlayer.create(GuitarTuner.this, R.raw.test2); 

    play.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      if (mpE.isPlaying()) { 
       mpE.pause(); 
       play.setBackgroundResource(R.drawable.play); 
      } else { 

       mpE.start(); 
       play.setBackgroundResource(R.drawable.pause); 
      } 

     } 
    }); 
0

對於暫停Mediaplayer

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

,並從它最近停止的位置恢復玩家通過完成:

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

公共類MainActivity擴展AppCompatActivity {

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

//該歌曲以前保存在原始文件夾中。這首歌的名字是mylife(這是一個mp3文件) final MediaPlayer mMediaPlayer = MediaPlayer.create(MainActivity.this,R.raw.mylife);

//  Play song 
    Button playButton = (Button) findViewById(R.id.play); 
    playButton.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      mMediaPlayer.start(); // no need to call prepare(); create() does that for you 
     } 
    }); 
    //  Pause song 
    Button pauseButton = (Button) findViewById(R.id.pause); 
    pauseButton.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      mMediaPlayer.pause(); 
     } 
    }); 

    //  Stop song - when you stop a song, you can't play it again. First you need to prepare it. 

    Button stopButton = (Button) findViewById(R.id.stop); 
    stopButton.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      mMediaPlayer.stop(); 
      mMediaPlayer.prepareAsync(); 
     } 
    }); 

} 

}

+1

請不要隨便傾倒代碼...解釋你的答案至少一點點。並參加[旅遊] – 2017-03-31 00:49:09