Flex开发Android应用调用手机摄像头被旋转90度问题
问题描述:用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; 该方案能保证视频正常方向显示,不改变可视的长宽,不改变显示位置。 其他需求,比如某组件指定点旋转,可使用矩阵变换方法 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |