在机器中旋转RAW CAMERA(不仅仅是视频)

时间:2011-04-25 03:46:06

标签: flex actionscript-3 air camera

我正在使用Flex Hero预发布4.5,这是一款适用于Android的Flex Mobile应用程序。

我有一种情况,原始相机正在屏幕上显示,并在网络中传输。显然现在在AIR for android如果你只是在肖像中使用原始相机,它实际上并没有以肖像方式拍摄相机......它在错误的方向上是90度。所以,这是一个代码片段,我旋转了视频,它在手机上看起来很棒。但是,我需要将凸轮连接到网络流并发送它...但它发送侧面视频,我真的不想在远端调整它。我无法将视频附加到网络流......任何人都有任何想法,而不仅仅是等待AIR更新吗?

//i know i have width and height mixed up, its because im rotating it in a second and i dont want it to be stretched
                                nearVideo = new Video(near_video.height,near_video.width);

var m:Matrix = new Matrix();
//rotate here
m.rotate(Math.PI/2); 
this.nearVideo.transform.matrix = m;
//repositioning it so it looks like its fitting in the container correctly
nearVideo.x=near_video.width;
nearVideo.y=(near_video.height-near_video.height);

if (Camera.isSupported)
{
nearCam = Camera.getCamera();
}

nearCam.setMode(near_video.height,near_video.width,10);
nearVideo.attachCamera(nearCam);
near_video.addChild(nearVideo);

//now its all great on screen...but when this comes up

sendStream.attachCamera(nearCam);

//i’m sending sideways video... 

编辑:我知道我可以告诉远端只是旋转它用来显示侧面摄像头的视频对象。但由于许多原因,这不是我想接受的解决方案。希望adobe能尽快解决这个问题。但直到那时我才好奇,如果有人知道如何旋转相机并将其连接到网络上。

2 个答案:

答案 0 :(得分:2)

嗯,对我来说,除了旋转远端的视频之外,它看起来是唯一真正的解决方案就是让adobe修复相机。所以,如果你发现这个页面是因为你对Android上的相机无法正确纵向旋转感到沮丧,请在这里投票错误,让他们来解决它:

http://bugs.adobe.com/jira/browse/SDK-30317

答案 1 :(得分:1)

可悲的是,在将其发送到服务器之前,您无法拦截相机流进行修改,这是一个有希望adobe将在下一版Air中修复的错误。如果有no tickets open,则应打开一个。

然而,并非所有人都失去了!相机类对NetStream的作用基本上只是发送摄像头捕获的视频字节,当然还有质量改变算法,具体取决于带宽。您可以尝试自己做同样的事情,但是质量改变算法会有点难以实现,但并非不可能。

基本上,既然您在某处显示摄像机视频(可能是视频类?),您可以获取该位图数据,将其转换为ByteArray并使用send通过NetStream发送。当然,服务器(或其他客户端)需要知道如何处理它。

不能保证这是否能够正常运作,因为我从未尝试过,但这就是我要做的。另一种方法是“告诉”媒体服务器(我假设你正在使用一个),你当前处于横向模式(只有一个布尔标志)然后服务器可以为你做转换把它发给另一个人。

无论哪种方式,都不容易。祝你好运。