18

ポートレートモードで録画したビデオは90度回転することがわかりました。したがって、mediaRecorderを設定するときに、次のコードを使用して回転させました。

 if (this.getResources().getConfiguration().orientation !=Configuration.ORIENTATION_LANDSCAPE)
{
     mediaRecorder.setOrientationHint(270);
}
 else
{
     mediaRecorder.setOrientationHint(0);
}

mediaRecorder.setOutputFile(file_name);                  
mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);

surfaceCreatedメソッドで次のコードを使用したため、プレビューも正しい方向に表示されます。

Camera.Parameters params = camera.getParameters();

if (this.getResources().getConfiguration().orientation
     !=Configuration.ORIENTATION_LANDSCAPE)
{   
  camera.setDisplayOrientation(90);

}
else
{   
  camera.setDisplayOrientation(0);                  
}

  params.setRotation(90);
  camera.setParameters(params);

このように、録画されたビデオは、デバイスで再生されたときに正しい向きになります。ただし、インターネットにアップロードした後も、ビデオは90度回転しています。誰かがこれについてアドバイスがありますか?どうもありがとう。

4

2 に答える 2

3

一部のビデオ プレーヤーは、ビデオを再生するときに向きのヒントを考慮します。他のプレイヤーはしません。Windows Media Player、Quick Time、および Real Player を使用して PC でこのビデオを再生して、違いを確認してください。
おそらく問題はコードではなく、ビデオの表示に使用しているビデオ プレーヤーです。

于 2013-08-02T15:27:52.130 に答える