あなたが示す記録コードは正しいようです。ICS を搭載した Samsung S2 でコードをテストしたところ、ビデオは正しい向きで再生されました。再生用のコードは表示されません。多分それが問題があるところです:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 120) { // i personally prefer using a constant here
VideoView videoView = (VideoView) findViewById(R.id.videoView);
videoView.setVideoURI(data.getData());
videoView.start();
}
}
videoView のレイアウト xml は非常に単純です。
<VideoView
android:id="@+id/videoView"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
上記が機能しない場合は、EXTRA_SCREEN_ORIENTATION を別の値に設定してみてください。私のデバイスでは、YMMV では違いがないように見えました。コードは次のとおりです。さらに、カスタムのビデオ録画コードを追加するように求められたため、さらに追加しました。
private static final int RECORD_VIDEO = 120;
private void startRecording() {
Intent cameraIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
cameraIntent.putExtra(MediaStore.EXTRA_SCREEN_ORIENTATION, ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
cameraIntent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 0); // low quality
cameraIntent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 5); // limit to 5 seconds
startActivityForResult(cameraIntent, RECORD_VIDEO);
}
さらに多くのエクストラがあります: http://developer.android.com/reference/android/provider/MediaStore.html#EXTRA_DURATION_LIMIT