import android.app.Activity;
import android.media.AudioSystem;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.SurfaceView;
import android.view.SurfaceHolder;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.content.Context;
import android.util.Log;
import android.widget.TextView;
import android.view.Window;
import android.graphics.PixelFormat;
//import android.media.MediaPlayer.OnBufferingUpdateListener;
//import android.media.MediaPlayer.OnCompletionListener;
//import android.media.MediaPlayer.OnErrorListener;
public class videoMP extends Activity {
private myAcListener myListener = new myAcListener(this);
private Button b;
private MediaPlayer mp;
private TextView t;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
b = (Button) findViewById(R.id.myButton);
b.setOnClickListener(myListener);
t = (TextView) findViewById(R.id.myText);
//mPreview = new Preview(this);
} // onCreate
private class myAcListener implements OnClickListener
{
private videoMP myMpActivity = null;
private SurfaceView surfaceView;
private Preview mPreview;
private static final String TAG = "Hello";
myAcListener(videoMP a) {
//Log.v(TAG, "onCreate: ===> ");
myMpActivity = a;
//surfaceView = new SurfaceView(a);
mp = new MediaPlayer();
//mp.setOnErrorListener(a);
//mPreview = new Preview(a);
}
public void onClick(View v)
{
//mp.setAudioStreamType(AudioSystem.STREAM_MUSIC);
try {
mPreview = new Preview(myMpActivity);
mp.setDataSource("sample.mp4");
mp.prepare();
mp.setDisplay(mPreview.getHolder().getSurface());
int length = mp.getDuration();
if (length==1) {
t.setText("--"+mp.getDuration()+"--");
} // if
else {
// requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFormat(PixelFormat.TRANSPARENT);
setContentView(mPreview);
}
} // try
catch (Exception e) {
e.toString();
} // catch
mp.start();
} // OnClick
};
}
class Preview extends SurfaceView implements SurfaceHolder.Callback
{
SurfaceHolder mHolder;
private boolean mHasSurface;
Preview(Context context) {
super(context);
mHolder = getHolder();
mHolder.setCallback(this);
mHasSurface = false;
mHolder.setFixedSize(320, 240);
//mHolder.setFixedSize(192, 242);
} // Preview
public boolean surfaceCreated(SurfaceHolder holder) {
// The Surface has been created, start our main acquisition thread.
mHasSurface = true;
return true;
}
public void surfaceDestroyed(SurfaceHolder holder) {
// Surface will be destroyed when we return. Stop the preview.
mHasSurface = false;
}
public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
// Surface size or format has changed. This should not happen in this
// example.
}
}