【问题标题】:SurfaceView without camera : preview after start rotated on 90 degree不带摄像头的 SurfaceView:开始旋转 90 度后预览
【发布时间】:2011-02-09 13:21:44
【问题描述】:

我的问题。 我创建了从 Android 上的相机进行预览的应用程序。 在我没有按下按钮时进行预览 - 我使用了相机,camera.open。当应用程序启动时 - 屏幕方向正常.. 但是当我尝试录制视频时 - 我关闭了相机预览并仅使用 SurfaceView 和 recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT); 它向我展示了没有相机类的相机预览。 我所做的所有这些都是因为它在录制后为我修复了绿色屏幕的错误。 所以......这个预览(没有相机)他开始后总是旋转 90 度(就像在模式景观中) 我尝试使用

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE );

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT );

但这并没有解决我的问题。 那么,谁能告诉我如何在 SCREEN_ORIENTATION_PORTRAIT 等模式下旋转我的预览(不带相机)?

请告诉我如何解决这个问题.. 我不能解决它 2-3 天:(

问候,彼得 p.s.对不起我的英语不好,希望你能理解我。

这是我在录制视频/音频时用于预览的代码

 preview = new SurfaceView(withPreview.this);
 preview.getHolder();
 holder.addCallback(this);
 holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS );

从相机获取图片

recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);

现在屏幕旋转了 90 度。如果我设置了

recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);

比图像旋转 180 度 О_О

并设置预览

recorder.setPreviewDisplay(holder.getSurface());

这就是相机预览所需的全部内容 你怎么能看到我没有使用相机..所以我不能使用 camera.parameters.setOrientation(90) //example :]

【问题讨论】:

    标签: java android camera


    【解决方案1】:

    对吗,您将屏幕方向固定为横向或纵向?还是应该是动态的? 因此,如果我理解您,要修复屏幕的方向,那么我更愿意将其添加到您的 Android 清单中:

    android:screenOrientation="landscape"
    

    这必须在活动块内。

    希望这会有所帮助,否则告诉我什么时候应该动态等等。

    【讨论】:

    • 这对我的预览没有帮助。预览没有相机类的工作..他只使用来自 mediaRecord。但无论如何感谢您的回复
    • 说实话,你的问题没有意义。如果没有相机类,您的预览是如何开始的?
    • 我编辑了我的代码。我展示了我是如何使用它的。忘记了 main.addView(preview,dW,dH);主要是FrameLayout。我只有在开始录制时才能看到来自相机的照片。所以这段代码会很好。只是有一些旋转错误:(
    猜你喜欢
    • 2012-01-05
    • 1970-01-01
    • 2015-11-28
    • 2017-03-10
    • 2018-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多