Android 自定义相机应用程序时如何将视频旋转到纵向?
我自定义了一个摄像头应用程序: 我将相机显示纵向设置为:Android 自定义相机应用程序时如何将视频旋转到纵向?,android,Android,我自定义了一个摄像头应用程序: 我将相机显示纵向设置为: mCamera.setDisplayOrientation(90); 摄像头显示纵向正常,但文件结果(视频)不显示纵向。 我尝试以下代码: Camera.Parameters parameters = mCamera.getParameters(); parameters.setRotation(90); mCamera.setParameters(parameters
mCamera.setDisplayOrientation(90);
摄像头显示纵向正常,但文件结果(视频)不显示纵向。
我尝试以下代码:
Camera.Parameters parameters = mCamera.getParameters();
parameters.setRotation(90);
mCamera.setParameters(parameters);
但这并不好
为什么??
如何解决这个问题?谢谢。用于
setDisplayOrientation()的手册上说:
设置预览显示的顺时针旋转角度
然后
此不会影响在预览帧(字节[],照相机)、JPEG图片或录制的视频中传递的字节数组的顺序
您不能旋转保存的视频流,只能预览。这里是一个演示,可用于纵向和横向查看
来源
演示
我知道你的问题
视频使用摄像机中的媒体记录器
,因此您需要旋转媒体记录器
。使用以下代码可以解决您的问题
/**
*
* @param mMediaRecorder
* @return
*/
public static MediaRecorder rotateBackVideo(MediaRecorder mMediaRecorder) {
/**
* Define Orientation of video in here,
* if in portrait mode, use value = 90,
* if in landscape mode, use value = 0
*/
switch (CustomCamera.current_orientation) {
case 0:
mMediaRecorder.setOrientationHint(90);
break;
case 90:
mMediaRecorder.setOrientationHint(180);
break;
case 180:
mMediaRecorder.setOrientationHint(270);
break;
case 270:
mMediaRecorder.setOrientationHint(0);
break;
}
return mMediaRecorder;
}
应在prepare()之前添加方法:
// Step 5: Set the preview output
/**
* Define Orientation of image in here,
* if in portrait mode, use value = 90,
* if in landscape mode, use value = 0
*/
CustomCamera.mMediaRecorder = Utils.rotateBackVideo(CustomCamera.mMediaRecorder);
CustomCamera.mMediaRecorder.setPreviewDisplay(mCameraPreview.getHolder().getSurface());
谢谢你这是不可能旋转的。试试我的答案吧!!!!!这可能有助于你了解我手机的默认设置。好的。我认为它可以在创建相机时设置属性;相机已经预览好了,为什么结果不是相同的相机视图?你能给我举个例子吗?见编辑后的答案。为什么你还没有阅读文档?你试过录制视频吗?I测试:摄像头显示纵向正常,但文件结果(视频)不显示纵向