I am also getting the Error (-17,0) when trying to play a video
file...here's my code. I cannot see anything in here that would cause
a problem. Any insight? The video file *should* play fine.
public class VideoActivity extends Activity {
private String _videoPath;
private MediaPlayer _mp;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
_videoPath = getIntent().getStringExtra("video_path");
getWindow().setFormat(PixelFormat.TRANSLUCENT);
LinearLayout layout = new LinearLayout(getBaseContext());
layout.setLayoutParams(new LinearLayout.LayoutParams
(LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.FILL_PARENT));
SurfaceView sview = new SurfaceView(getBaseContext());
sview.setLayoutParams(new LinearLayout.LayoutParams(320,
180));
sview.getHolder().addCallback(new surfaceHolderCallback());
layout.addView(sview);
setContentView(layout);
}
class surfaceHolderCallback implements SurfaceHolder.Callback {
public void surfaceCreated(SurfaceHolder holder) {
try {
_mp = new MediaPlayer();
_mp.setDataSource(_videoPath);
_mp.setDisplay(holder);
_mp.setOnPreparedListener(new
MediaPlayer.OnPreparedListener() {
public void onPrepared(MediaPlayer mediaPlayer) {
mediaPlayer.start();
}
});
_mp.setOnErrorListener(new MediaPlayer.OnErrorListener
() {
public boolean onError(MediaPlayer mediaPlayer,
int i, int i1) {
Log.e(Constants.TAG, Integer.toString(i));
return false;
}
});
_mp.prepareAsync();
} catch (Exception ex) {
Log.e(Constants.TAG, ex.getMessage());
}
}
public void surfaceChanged(SurfaceHolder surfaceHolder, int i,
int i1, int i2) {
}
public void surfaceDestroyed(SurfaceHolder surfaceHolder) {
_mp.stop();
_mp.release();
}
}
}