Perhaps you could try the following:
surfaceView = (SurfaceView)findViewById(R.id.surfaceview); DisplayMetrics displaymetrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); int h = displaymetrics.heightPixels; int w = displaymetrics.widthPixels; surfaceHolder = surfaceView.getHolder(); if (w > h) { surfaceHolder.setFixedSize(w,h); } else { surfaceHolder.setFixedSize(h,w); } surfaceHolder.addCallback(this); mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); mediaPlayer.setDisplay(surfaceHolder);
Also, maybe you want to put this code above on your onCreate (), and not on your surfaceCreated (). Then add some play () method from some button:
protected void play() { // TODO Auto-generated method stub if(mediaPlayer.isPlaying()){ mediaPlayer.reset(); } //Define here your filename: String stringPath = Environment.getExternalStorageDirectory().getPath() + "/BigBuckBunny_320x180.mp4"; mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); mediaPlayer.setDisplay(surfaceHolder); try { mediaPlayer.setDataSource(stringPath); mediaPlayer.prepare(); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } mediaPlayer.start(); }
source share