您的位置:首页 > 移动开发 > Android开发

Flex开发Android应用调用手机摄像头被旋转90度问题

2014-11-24 21:04 776 查看
问题描述:用Flex调用PC端Camera时,能够正常显示视频信息,当调用Android手机摄像头时,物理设备垂直方向,摄像头显示画面会被顺时针旋转90度(猜测可能不同手机方向角度不同),物理设备水平时,不会出现该问题,视频显示正常。

问题追踪:在官方曾经发布的API文档中记录如下:Camera 实例以横向长宽比捕获视频。在可以更改屏幕方向的设备(例如移动电话)上,与摄像头关联的 Video 对象仅以横向长宽比显示垂直视频。因此,移动应用程序在显示视频时应使用横向并且不应自动旋转。

问题解析:对于上述说法,简直就是在放屁撒,你说不让就不让啊?那我们该如何解决?

问题解决:被旋转的摄像头,显示出来的肯定是被旋转的,我们把它旋转回来应该就可以了。

以摄像头显示图像被顺时针旋转90度为例说明:

1、变量声明,拼接:video.attachCamera(camera);localUI.addChild(video);//localUI:UIComponent

2、置换video长宽:video.width = equalHeight; video.height = equalWidth;//equalHeight、equalWidth长宽常量

3、逆向旋转:video父组件ui逆向旋转90度,localUI.rotation = -90;

4、坐标平移:localUI.y = equalHeight;恢复其到初始位置。

video.width = equalHeight;
video.height = equalWidth;
localUI.rotation = -90;
localUI.y = equalHeight;


该方案能保证视频正常方向显示,不改变可视的长宽,不改变显示位置。

其他需求,比如某组件指定点旋转,可使用矩阵变换方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: