3 Kasım 2016 Perşembe

MediaPlayer Sınıfı

Giriş
Şu satırı dahil ederiz.
import android.media.MediaPlayer;
Bu sınıf hem senkron hem de asenkron olarak bir kaynağı oynatmak için kullanılabilir.

constructor
Şöyle yaparız.
MediaPlayer mp = new MediaPlayer();
create metodu
Şöyle yaratırız.
MediaPlayer mp = MediaPlayer.create(this, R.raw.wrong_press);
Başlatmak için şöyle yaparız.
mp.start();
create metodunu kullanmak bence şöyle yapmaktan çok daha kolay.
String audioPath = ...;
MediaPlayer mp = new MediaPlayer ();
mp.setAudioStreamType (AudioManager.STREAM_MUSIC);
mp.setDataSource (audioPath);
mp.prepare ();
mp.start ();
getCurrentPosition metodu
Şöyle yaparız.
int currentTime = mp.getCurrentPosition ();
getDuration metodu
Şöyle yaparız.
mp.getDuration ();
isPlaying metodu
Şöyle yaparız.
if (mp.isPlaying()){...}
pause metodu
Şöyle yaparız.
mp.pause ();
prepare metodu
Şöyle yaparız.
mp.prepare ();
prepareAsync metodu
Belirtilen DataSource kaynağını oynatmak için hazırlar. Şöyle yaparız.
mp.prepareAsync ();
reset metodu
Şöyle yaparız.
mp.reset ();
release metodu
Açıklaması şöyle. Nesne tekrar kullanılamaz.
Once the MediaPlayer object is in the End state, it can no longer be used and there is no way to bring it back to any other state.
Şöyle yaparız.
mp.release ();
seekTo metodu
Şöyle yaparız.
int timeToSet = ...;
mp.seekTo (timeToSet);
setAudioStreamType metodu
Şöyle yaparız.
mp.setAudioStreamType (AudioManager.STREAM_MUSIC);
setDataSource metodu
Şöyle yaparız.
mp.setDataSource (getApplicationContext(), Uri.parse(...));
Şöyle yaparız
Uri myUri = ...;
mediaPlayer.setDataSource (MainActivity.this,myUri);
setDisplay metodu
Şöyle yaparız.
SurfaceHolder surfaceHolder = ...;
mp.setDisplay (surfaceHolder);
setLooping metodu
Şöyle yaparız.
mp.setLooping (true);
setOnBufferingUpdateListener metodu
Şöyle yaparız.
mp.setOnBufferingUpdateListener (new MediaPlayer.OnBufferingUpdateListener() {
  @Override
  public void onBufferingUpdate(MediaPlayer mp, int percent) {
    progressBar.setSecondaryProgress(percent);
  }
});
setOnCompletionListener metodu
MediaPlayer çalmayı bitirince çağrılır. Şarkı tekrar başlatılabilir.
int count = 0;
mp.setOnCompletionListener (new OnCompletionListener()

  @Override
  public void onCompletion(MediaPlayer mp) {
    if (count < yourCount) {
      mp.start();
      count++;
    }
  }
});
mp.start();
setOnErrorListener metodu
Şöyle yaparız.
mp.setOnErrorListener (new MediaPlayer.OnErrorListener(){
  @Override
  public boolean onError(MediaPlayer mediaPlayer,int what,int extra){
    ...
    return true;
  }
});
setOnPreparedListener metodu
Şöyle yaparız.
// Play video when the media source is ready for playback.
mp.setOnPreparedListener (new MediaPlayer.OnPreparedListener() {
  @Override
  public void onPrepared(MediaPlayer mediaPlayer) {
    mediaPlayer.start();
    ...
    }
});
setScreenOnWhilePlaying metodu
Şöyle yaparız.
mp.setScreenOnWhilePlaying (true);
setVolume metodu
Şöyle yaparız.
mp.setVolume (1.0f, 1.0f); 
start metodu
MediaPlayer'ı başlatır.  Şöyle yaparız.
mp.start (); 
stop metodları
MediaPlayer'ı durdurur. Şöyle yaparız.
mp.stop (); 
MediaPlayer ve Timer
Eğer parçanın sadece belli bir kısmını çalmak istersek bir Timer açılır ve zamanı gelince player durdurulabilir.
// Will call onFinish() after 2 seconds. Second parameter is 
// for onTick() which we don't need and can ignore.
new CountDownTimer(2000, 2000) {

     public void onTick(long millisUntilFinished) {
         // Do nothing...
     }

     public void onFinish() {
         mediaPlayer.stop();  
         // Decide here if you need to prepare a new clip
         // or release the media player
     }

}.start();

Hiç yorum yok:

Yorum Gönder