Alex Rivera | Logout

Android: How to create video player?

Asked 2009-07-27T14:08:04.883
9

I am creating a video recorder and would like to create video player to preview the recorded videos. Modifying the code from this page I have created a MediaPreview class the following way:

public class MediaPreview extends Activity implements OnErrorListener, 

OnBufferingUpdateListener,
OnCompletionListener, OnPreparedListener, SurfaceHolder.Callback{

private static final String TAG = "MediaPreview";

private MediaPlayer mp;
private SurfaceView mPreview;
private SurfaceHolder holder;
private Button btnPlay;
private Button btnPause;
private Button btnReset;
private Button btnStop;

private String mPath;

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.media_preview);

    mPreview = (SurfaceView)findViewById(R.id.mPreview);
    btnPlay = (Button)findViewById(R.id.btnPlay);
    btnPause = (Button)findViewById(R.id.btnPause);
    btnReset = (Button)findViewById(R.id.btnReset);
    btnStop = (Button)findViewById(R.id.btnStop);

    getPathFromParentDialog();

    btnPlay.setOnClickListener(new View.OnClickListener(){

        @Override
        public void onClick(View v) {
            playVideo();
        }
    });

    btnPause.setOnClickListener(new View.OnClickListener(){

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            if(mp != null){
                mp.pause();
            }
        }
    });

    btnReset.setOnClickListener(new View.OnClickListener(){

        @Override
        public void onClick(View v) {
            if(mp != null){
                mp.seekTo(0);
            }
        }
    });

    btnStop.setOnClickListener(new View.OnClickListener(){

        @Override
        public void onClick(View v) {
            if(mp != null){
               
Edit
Report

2 Answers

6

Off the cuff, I think you need some more logic in some of your callback methods, like surfaceCreated().

answered 2009-07-27T14:55:03.200
6

You need to attach the surface to the played after the surface is created.

call

 mp.setDisplay(mPreview.getHolder());

from inside

public void surfaceCreated(SurfaceHolder holder)
answered 2010-07-29T18:31:58.460

Your Answer