Как настроить несколько режимов камеры Flex? - PullRequest
0 голосов
/ 19 июля 2011

У меня есть ситуация, когда мне нужно иметь несколько «камер» разных размеров для отправки через 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, а затем уже имеется ожидание отправки nearCamForMobile, когда мне это нужно?

Можно ли настроить только один режим камеры одновременно?Есть идеи, как я мог это сделать?На мобильной версии его настройка, чтобы пользователь держал телефон в горшке и его 840х480.Сайт рабочего стола выглядит лучше всего, когда он похож на широкоэкранное видео.

В конце я в основном пытаюсь выяснить, как получить 2 камеры с двумя разрешениями.Отобразите 1 на ближней стороне, а другой присоедините к netstream в ситуации, когда удаленным является мобильный клиент.(Я знаю, как определить, является ли дальний мобильный телефон, я не беспокоюсь об этой части)который имеет другое соотношение сторон, чем настольный компьютер.

Ответы [ 2 ]

1 голос
/ 19 июля 2011

Не может быть сделано.Посмотрите на эту строку специально из документов:

"Несколько вызовов метода getCamera () ссылаются на один и тот же драйвер камеры. Таким образом, если ваш код содержит код, такой как firstCam: Camera = getCamera () и secondCam: Camera = getCamera (), firstCam и secondCam ссылаются на одну и ту же камеру, которая является камерой пользователя по умолчанию. "

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

Другими словами, как тольковы получаете один, любые последующие попытки получения будут просто создавать другой указатель на тот же объект.Таким образом, у вас есть две переменные с указателем на один и тот же объект.Установка свойства для этого указателя устанавливает оба значения.

Имеет смысл?

Извините за плохие новости: \

0 голосов
/ 19 июля 2011

Если вы используете Flash Builder 4.5, вы можете проверить доступ к мобильной камере или нет, вызвав CameraUI вместо Camera.Вы можете проверить, какой тип камеры у вас есть, кодируя ее следующим образом:

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

Более подробную информацию можно найти по этой ссылке: http://www.flexair-android-prendre-des-photos-videos-avec-cameraui /

Надеюсь, это поможет:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...