Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Flash Приложения: AIR, Zinc и тд.

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 20.02.2013, 12:36
Astraport вне форума Посмотреть профиль Отправить личное сообщение для Astraport Найти все сообщения от Astraport
  № 1  
Ответить с цитированием
Astraport
 
Аватар для Astraport

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
По умолчанию CameraUI поворачивает фото на 90 градусов

Столкнулся с забавным багом. При тестировании на Android устройстве полученная фотка поворачивается на 90 градусов против часовой. При этом видно, что как бы само приложение при переходе в режим фото на доли секунды поворачивается в ландшафтную ориентацию, а после сохранения фото резко возвращается в назначенную портретную ориентацию. Самое прикольное, что если снимать фронтальной камерой, то тоже поворачивает, но на 90 градусов по часовой. В общем невозможно нормально использовать CameraUI.

Естественно везде в дескрипторе поставил <autoOrients>false</autoOrients> и <aspectRatio>portrait</aspectRatio>, на устройстве отключил автоповорот, но все равно делает по своему. В галерее фото сделанные приложением отображаются нормально. Баг замечен только на Самсунг SII, других Андроид девайсов нет чтобы проверить. На устройствах iOS все нормально.

Пробовал старую либу jp.shichiseki.exif по получению exif фоток с целью просто потом их поворачивать в зависимости от ориентации, но либа стала давать ошибку - не может преобразовать XML. В общем одни проблемы.

Если у кого есть Андроид устройства просьба проверить как у вас. Простейший класс приложения ниже или во вложении готовая APK (AIR встроен)

Код AS3:
package
{
	import com.bit101.components.PushButton;
 
	import flash.display.DisplayObject;
	import flash.display.Loader;
	import flash.display.Sprite;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	import flash.events.Event;
	import flash.events.IOErrorEvent;
	import flash.events.MediaEvent;
	import flash.events.MouseEvent;
	import flash.events.SecurityErrorEvent;
	import flash.media.CameraUI;
	import flash.media.MediaPromise;
	import flash.media.MediaType;
	import flash.net.URLRequest;
	import flash.system.LoaderContext;
 
	public class CameraApp extends Sprite
	{
		private var camera:CameraUI;
		private var loader:Loader;
		private static const LOADER_CONTEXT:LoaderContext = new LoaderContext(true);
 
		public function CameraApp()
		{
			super();
			stage.align = StageAlign.TOP_LEFT;
			stage.scaleMode = StageScaleMode.NO_SCALE;
 
			var btn:PushButton = new PushButton(this, 20, 30, 'Take photo', takePhoto);
			this.addChild(btn);
		}
 
		private function takePhoto(e:MouseEvent):void
		{
			camera = new CameraUI();
			camera.addEventListener(MediaEvent.COMPLETE, onComplete);
			camera.launch(MediaType.IMAGE);
		}
 
		protected function onComplete(event:MediaEvent):void
		{
			var mp:MediaPromise = event.data;
			trace('url ' + mp.file.url);
			load(mp.file.url)
		}
 
		protected function load(url:String):void
		{
			if(this.loader)
			{
				this.loader.unloadAndStop(true);
			}
			else
			{
				this.loader = new Loader();
				this.loader.contentLoaderInfo.addEventListener(flash.events.Event.COMPLETE, loader_completeHandler);
				this.loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loader_errorHandler);
				this.loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, loader_errorHandler);
			}
			this.loader.load(new URLRequest(url), LOADER_CONTEXT);
		}
 
		protected function loader_completeHandler(event:Event):void
		{
			this.addChildAt(loader.content as DisplayObject, 0);
		}
 
		protected function loader_errorHandler(event:IOErrorEvent):void
		{
 
		}
	}
}
Вложения
Тип файла: zip CameraApp.zip (8.85 Мб, 77 просмотров)
__________________
In Code We Trust

Создать новую тему Ответ Часовой пояс GMT +4, время: 18:04.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 18:04.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.