首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >setOrientationHint在一些手机的正面摄像头上逆时针旋转视频(HTC)

setOrientationHint在一些手机的正面摄像头上逆时针旋转视频(HTC)
EN

Stack Overflow用户
提问于 2013-02-07 23:37:48
回答 1查看 2.1K关注 0票数 9

问题:某些安卓设备(列在问题的底部)在使用setOrientationHint(int degrees)功能拍摄带有正面摄像头的视频时会表现出意想不到的行为。预期的行为是视频顺时针旋转,但这些设备逆时针旋转视频。

我的目标:识别相机设置或硬件方向中的变量,这样我就可以预见地知道什么时候会发生这种情况。具体来说,我想避免这些电话在我的代码中的特殊大写!

进一步解释:--我使用标准的MediaRecorder对象录制视频,在准备录制时,我使用setOrientationHint()设置了视频的方向。在setOrientationHint()的文档中,为degrees参数指定了以下内容:

度-以度为单位顺时针旋转的角度。支撑角为0、90、180和270。

该功能旨在添加包含旋转角度的组合矩阵,以便视频播放器能够按预期显示视频。所以,我要做的是 class,并使用它作为setOrientationHint fn中的degrees参数。(我尝试过用AOSP作为指南对这段代码进行修改,但结果完全相同。)

一个真实的例子:三星GalaxyS3正面摄像头(以及其他大多数摄像头)的硬件方向为270,所以我在录制时使用这个,最终的视频将被正确显示。HTC同样会返回同一台相机的硬件方向为270,但只有当我在degrees fn中使用90作为setOrientationHint参数时,才能正确显示。如果我像其他手机一样使用270的硬件定位,视频就会颠倒过来。

NB: setOrientationHint()函数包括一个警告:

注意,在播放过程中,一些视频播放器可能会选择忽略视频中的组合矩阵。

然而,这不是正在发生的事情,因为我可以很容易地在这些手机上解决这个问题,如果我伪造它,把90而不是270。

我见过的手机具体展示了这个问题: HTC (PH39100)运行Android4.0.3,宏达EVO4G (PG86100)运行Android4.0.3,宏达迅雷(ADR6400L)运行Android2.3.4。请注意,他们都是HTC手机。也许宏达电的某个人把顺时针误认为是逆时针。

EN

Stack Overflow用户

发布于 2013-03-05 04:57:13

是的,宏达电的手机向错误的方向旋转前面对摄像头。而不是试图猜测,我最终添加了一个设置屏幕,可以拍摄两张照片,第二张旋转90度。然后,当我通过不同的旋转方向和角度组合时,用户可以继续点击next,直到两幅图片都以相同的方式出现。

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14763204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档