Skip to content

Instantly share code, notes, and snippets.

@amyu
Created February 19, 2015 14:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save amyu/f9fb98d27669f19fb82a to your computer and use it in GitHub Desktop.
Save amyu/f9fb98d27669f19fb82a to your computer and use it in GitHub Desktop.
package com.example.amyu.mediaplayersmaple;
import android.app.Activity;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Handler;
import android.os.PowerManager;
import android.util.Log;
import android.widget.SeekBar;
import java.io.IOException;
public class MainActivity extends Activity implements MediaPlayer.OnPreparedListener, MediaPlayer.OnErrorListener, MediaPlayer.OnBufferingUpdateListener {
private SeekBar mSeekBar;
private MediaPlayer mMediaPlayer;
private Handler mSeekHandler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mSeekHandler = new Handler();
initView();
initMediaPlayer();
}
private void initMediaPlayer() {
mMediaPlayer = new MediaPlayer();
mMediaPlayer.setOnPreparedListener(this);
mMediaPlayer.setOnErrorListener(this);
mMediaPlayer.setOnBufferingUpdateListener(this);
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mMediaPlayer.setWakeMode(getApplicationContext(), PowerManager.PARTIAL_WAKE_LOCK);
try {
mMediaPlayer.setDataSource("http://wpc.125F2.alphacdn.net/00125F2/audio/website/programs/music/mb/mb150218latest_show.mp3");
mMediaPlayer.prepareAsync();
} catch (IOException e) {
e.printStackTrace();
}
}
private void initView() {
mSeekBar = (SeekBar) findViewById(R.id.main_seek);
mSeekBar.setOnSeekBarChangeListener(mOnSeekBarChangeListener);
}
private SeekBar.OnSeekBarChangeListener mOnSeekBarChangeListener = new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
if(!fromUser){
return;
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
};
@Override
public void onBufferingUpdate(MediaPlayer mp, int percent) {
}
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
return false;
}
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
mSeekBar.setMax(mp.getDuration());
mSeekHandler.post(mSeekRunnable);
}
private Runnable mSeekRunnable = new Runnable() {
@Override
public void run() {
Log.d("log", mMediaPlayer.getCurrentPosition() + "");
mSeekBar.setProgress(mMediaPlayer.getCurrentPosition());
mSeekHandler.postDelayed(this, 100);
}
};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment