4

友達。私たちを手伝ってくれますか?

ボタンのクリックなどでビデオを回転させる必要があります (ビデオは常に再生する必要があります)。SurfaceView 内の MediaPlayer でビデオを表示し、これを試します。

@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) {
}

しかし、ビデオは再生したくありません。(回転したかどうかはわかりません)助けてください...誰か..どうもありがとう。

4

1 に答える 1

-1

多分あなたはこれを試すことができます:

 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);

また、上記のコードを surfaceCreated() の代わりに onCreate() に配置することもできます。そして、いくつかのボタンから呼び出されるいくつかの play() メソッドを配置します。

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();
      }
于 2014-04-25T19:27:00.593 に答える