我正在尝试录制视频portrait orientation
。
将相机设置DisplayOrientation
为 90 度会使视频预览以portrait
.
但是,当setOrientationHint()
使用任何给定号码(0,90,180,270)呼叫时,创建的视频始终以纵向创建。
当我在 Jellybean 和 ICS 上对其进行测试时,视频方向是我使用该setOrientationHint()
方法设置的方向。
下面是MediaRecorder
初始化代码:
private void initRecorder() {
Camera camera = Camera.open();
camera.setDisplayOrientation(90);
camera.unlock();
recorder.reset();
recorder.setCamera(camera);
recorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
file = new File("/sdcard/test.mp4");
if (!file.exists()) {
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
recorder.setOrientationHint(90);//doesn't seem to work on 2.3
recorder.setOutputFile(file.getAbsolutePath());
recorder.setMaxDuration(30000);
recorder.setMaxFileSize(1000000);
}
这就是我准备的地方MediaRecorder
:
public void surfaceCreated(SurfaceHolder holder) {
this.holder = holder;
recorder.setPreviewDisplay(holder.getSurface());
try {
recorder.prepare();
} catch (IllegalStateException e) {
e.printStackTrace();
finish();
} catch (IOException e) {
e.printStackTrace();
finish();
}
}
编辑:
测试:
三星 Galaxy S 运行安卓 2.2。
运行安卓 2.3 的三星 Galaxy W。
运行 ICS 的三星 Galaxy S2工作正常。
运行 Jelly Bean 的三星 Galaxy s3 -工作。