Android相机和预览方向 - 如何解耦

时间:2013-07-22 12:27:01

标签: android android-camera android-orientation

我刚刚通过android camera tutorial玩了。我的问题是关于方向。如果我以纵向模式开始录制的视频方向错误。 在我的情况下,我稍微修改了预览视图的布局 - 现在它有一些错误/任意的宽高比,但录制的视频也有相同(错误)的宽高比!?

为什么以及预览和实际录音如何结合?有没有办法解耦它:录制的视频应该只记录相机提供的内容。

那么如何创建一个忽略录制方向的相机应用(或仅使用方向将其存储在元数据中),但在预览中反映它(无所事事 - 通过旋转手机将肖像变为风景)。有没有正确旋转处理的相机应用程序的例子?

2 个答案:

答案 0 :(得分:3)

如果您想要使用与默认设置不同的方向在Android上录制视频,则需要使用MediaRecorder的setOrientationHint方法。

没有相机预览方向(由相机的setDisplayOrientation方法设置)与录制方向的耦合,除此之外,它们都默认为沿着设备的长边定向。

如果您将应用的方向更改为横向,则需要调用相机的setDisplayOrientation来正确调整预览,并调整Media Recorder的setOrientationHint以独立更改录制方向。

Android的默认相机应用程序({3}}中提供,可以正确处理所有这些。

答案 1 :(得分:0)

            mSession = SessionBuilder.getInstance()
                .setContext(getApplicationContext())
                .setAudioEncoder(SessionBuilder.AUDIO_AAC)
                .setAudioQuality(new AudioQuality(8000, 16000))             
                .setVideoEncoder(SessionBuilder.VIDEO_H264)
                .setSurfaceView(mSurfaceView).setPreviewOrientation(90)
                .setCallback(this).build();