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

来源:互联网 发布:网络本科学历有用吗 编辑:程序博客网 时间:2024/06/06 08:54

问题描述:用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;

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

其他需求,比如某组件指定点旋转,可使用矩阵变换方法

0 0
原创粉丝点击