Skip to content

Instantly share code, notes, and snippets.

@jacks205
Last active November 2, 2015 21:45
Show Gist options
  • Save jacks205/f923e09e889d18f1a7b5 to your computer and use it in GitHub Desktop.
Save jacks205/f923e09e889d18f1a7b5 to your computer and use it in GitHub Desktop.
package com.jacks205.mediadatasourceexample;
import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import java.io.IOException;
public class MainActivity extends Activity implements SurfaceHolder.Callback {
MediaPlayer mp;
boolean isPaused;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SurfaceView surfaceView = (SurfaceView)findViewById(R.id.surface);
SurfaceHolder holder = surfaceView.getHolder();
holder.addCallback(this);
mp = new MediaPlayer();
isPaused = false;
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
try {
mp.setDisplay(holder);
if(!isPaused) {
mp.setDataSource("https://devimages.apple.com.edgekey.net/streaming/examples/bipbop_4x3/gear1/fileSequence0.ts");
mp.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
}
});
mp.prepareAsync();
}else {
mp.start();
}
isPaused = false;
} catch (IOException io) {
} catch (IllegalStateException is){
}
}
@Override
protected void onPause() {
super.onPause();
if(mp.isPlaying() && !isPaused) {
mp.pause();
isPaused = true;
}
}
@Override
protected void onDestroy() {
super.onDestroy();
if(mp != null) {
mp.stop();
mp.release();
}
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment