您显示的录制代码似乎正确。我刚刚用 ICS 在我的三星 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