How to rotate * .mp4 video in SurfaceView?

Friends. could you help me?

I need to rotate the video (the video should always play) when I press a button or another. I show a video in MediaPlayer inside SurfaceView and try it:

@Override public void surfaceCreated(SurfaceHolder holder) { surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_NORMAL); surfaceHolder.lockCanvas().rotate(90); 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(); } catch (Exception e) { e.printStackTrace(); } mediaPlayer.start(); } } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { } @Override public void surfaceDestroyed(SurfaceHolder holder) { } 

But the video does not want to play. (And I donโ€™t know if it is rotated) Help me ... somebody .. Thanks a lot.

+4
source share
1 answer

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(); } 
-1
source

All Articles