如何设置多个相机模式灵活



我有一个情况,我必须有几个不同大小的"相机"通过netstream发送取决于它是一个桌面或移动连接。下面是我的设置:

protected var nearCam:Camera;
protected var nearCamForMobile:Camera;
nearCam = Camera.getCamera();
nearCam.setMode(385,240,10);
nearCam.setQuality(0,0);
//this is the cam I want to display on the near Side to show the user themselves.
near_video.attachCamera(nearCam);

//If a mobile user connects, I want to send them this resolution/aspect ratio of a camera so i'm just setting up this Camera but not showing it anywhere.         
nearCamForMobile = Camera.getCamera();
nearCamForMobile.setMode(480,800,10);
nearCamForMobile.setQuality(0,0);

所以当一个移动用户连接时,我就把连接到netstream的摄像头换到手机上,这样在他们的手机上看起来很好,而不是全部拉长。

if(isFarMobile)
{
    sendStream.attachCamera(nearCamForMobile);
}
else
{
    sendStream.attachCamera(nearCam);
}

现在来看看我的问题....

如果我只做nearCamForMobile并将其发送到移动版本,它在手机上看起来很棒,而且它没有拉伸。但显然,它的480x800分辨率在桌面版上显得有些夸张,桌面版是一个385x240的视频盒。所以如果我只做nearCam,它在桌面上看起来很棒,但在移动设备上看起来很拉伸....

所以我好奇的是为什么我不能做这两个变量我上面显示的方式,显示nearCam,然后有necamformobile等待发送当我需要它?

一次只能设置一种相机模式吗?知道怎么做吗?在手机版本中,它的设置是这样的,用户拿着手机,照片是840x480。当桌面网站像宽屏视频时,它看起来最好。

最后,我基本上是想弄清楚如何用2种分辨率有2个相机变量。在远端为移动客户端的情况下,近端显示1,另一端连接到netstream。(我知道如何判断手机是否移动,我不担心那部分)

我只需要能够传输一个分辨率/宽高比,看起来不错的移动客户端。这恰好是在一个不同的宽高比与桌面清洁

不行。从文档中查看这一行:

"对getCamera()方法的多次调用引用同一个相机司机。因此,如果您的代码包含像firstCam:Camera =getCamera()和secondCam:Camera = getCamera(), firstCam和secondCam引用相同的相机,这是用户的默认值相机。"

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/Camera.html getCamera ()

换句话说,一旦你得到一个,任何后续的get尝试都会创建另一个指向同一个对象的指针。这样,就有了指向同一个对象的两个变量。在该指针上设置属性会将其设置为两者。

有意义吗?

对不起,坏消息:

如果您正在使用Flash Builder 4.5,您可以通过调用CameraUI而不是Camera来检查您是否正在访问移动相机。你可以检查你有哪种类型的相机,像这样编码:

if(CameraUI.isSupported)
{
    //Mobile camera
}
else
{
    //Desktop camera
}

您可以在此链接找到更多信息:http://www.flex-tutorial.fr/2010/09/07/air-android-prendre-des-photos-videos-avec-cameraui/

希望这对你有帮助

最新更新