加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 03:33:45 所属栏目:百科 来源:网络整理
导读:问题描述 :用Flex调用PC端Camera时,能够正常显示视频信息,当调用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;

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读