2012-02-27 64 views
17

Trong dự án của tôi, tôi đang chơi tập tin âm nhạc trong android media player bằng cách sử dụng đoạn mã sauAndroid Media Player chơi/tạm dừng Nút

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

trên được mã hóa trong onclick của nút play. Tôi muốn tạm dừng phát lại bằng cách nhấp vào nút cùng một lần nữa.ie) nút duy nhất để phát/tạm dừng. Làm thế nào tôi sẽ làm điều này.

Trả lời

41

Bạn có thể sử dụng tính năng kiểm tra đơn giản để xử lý việc tạm dừng. Hãy thử điều này:

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

Vui lòng thử này ::

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

Bên trong kiểm tra nút bấm cho mediaPlayer.isPlaying(). Điều này sẽ trả về true nếu trình phát phương tiện đang phát sai.

Vì vậy, bây giờ với này, giá trị cờ bạn có thể làm cho một câu lệnh if và chuyển sang chơi hoặc tạm dừng như thế này,

button.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View view) { 

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

Dưới đây đang chăm sóc chơi/tạm dừng sự kiện nhấn nút của bạn cùng với tiến và lùi các nút để tìm kiếm tiến và lùi trên thanh tìm kiếm được cung cấp (được đồng bộ hóa với bản nhạc). Hiện tại nó chỉ chơi MỘT bài hát. Tuy nhiên, bạn có thể thêm vào đó. Đây là trình phát đa phương tiện đầu tiên của tôi sử dụng mediaplayer class, vì vậy bạn có thể thấy nó nguyên thủy một chút. Tuy nhiên, nếu bạn cần bạn cũng có thể kiểm tra các ví dụ VideoView. Nó dường như dễ dàng hơn với VideoView vì bảng điều khiển phương tiện tiêu chuẩn đã có mặt dưới dạng các tiện ích được xác định trước. để thiết kế trình phát dễ dàng hơn nhiều.

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

Đối tạm dừng Mediaplayer:

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

và việc khôi phục các cầu thủ từ vị trí mà nó dừng lại thời gian gần đây được thực hiện bởi:

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

public class MainActivity kéo dài AppCompatActivity {

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

// bài hát đã được lưu trước đó trong thư mục thô. Tên của bài hát là mylife (đó là một tập tin mp3) MediaPlayer cuối cùng 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

Xin đừng chỉ đổ mã ... giải thích câu trả lời của bạn ít nhất một chút. Và lấy [tour] –

Các vấn đề liên quan