Пакет | flash.media |
Класс | public class CameraUI |
Наследование | CameraUI EventDispatcher Object |
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2.5 |
Метод launch()
отправляет запрос на открытие стандартной программы камеры на устройстве. Захваченное изображение или видео доступно в объекте MediaEvent, отправленном для события complete. Так как стандартная программа камеры позволяет сохранять изображение или видео в разнообразных форматах, нельзя гарантировать возможность загрузки и отображения возвращенного объекта мультимедиа в среде выполнения AIR.
На некоторых платформах объект мультимедиа, возвращенный камерой, доступен как предварительный образ мультимедиа в виде файла. На других устройствах предварительный образ мультимедиа не основан на файлах, и свойства file
и relativePath
объекта MediaPromise имеют значения null
. Не используйте эти свойства в коде, который используется на нескольких платформах.
На платформе Android стандартная программа камеры не открывается, если внешняя карта для хранения данных недоступна (например, когда пользователь подключил карту как запоминающее устройство USB большой емкости). Кроме того, программа AIR, которая запускает камеру, теряет фокус. Если на устройстве недостаточно ресурсов, работа программы AIR может быть завершена операционной системой до завершения захвата мультимедийного содержимого.
На некоторых платформах объект мультимедиа автоматически сохраняется в библиотеке мультимедиа устройства. На платформах, где изображения и видеоролики не сохраняются автоматически стандартным приложением камеры, объекты мультимедиа можно сохранять с помощью функции CameraRoll addBitmapData ()
.
Поддержка в профилях AIR: эта функция поддерживается на мобильных устройствах, но не поддерживается в компьютерных операционных системах или на устройствах AIR for TV. Используйте свойство CameraUI.isSupported
, чтобы проверить наличие поддержки в среде выполнения. Дополнительные сведения о поддержке API-интерфейса в разных профилях см. в разделе «Поддержка в профилях AIR».
Дополнительно
Свойство | Определено | ||
---|---|---|---|
constructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. | Object | ||
isSupported : Boolean [статические] [только для чтения]
Сообщает о поддержке класса CameraUI на текущем устройстве. | CameraUI | ||
permissionStatus : String [статические] [только для чтения]
Определяет, предоставлено или нет приложению разрешение на использование камеры. | CameraUI |
Метод | Определено | ||
---|---|---|---|
CameraUI()
Создает объект CameraUI. | CameraUI | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Регистрирует объект прослушивателя события на объекте EventDispatcher для получения прослушивателем уведомления о событии. | EventDispatcher | ||
Посылает событие в поток событий. | EventDispatcher | ||
Проверяет, имеет ли объект EventDispatcher прослушиватели, зарегистрированные для определенного типа события. | EventDispatcher | ||
Показывает, определено ли заданное свойство для объекта. | Object | ||
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | ||
Запускает стандартную программу камеры на устройстве. | CameraUI | ||
Показывает наличие заданного свойства и его перечисляемость. | Object | ||
Удаляет прослушиватель из объекта EventDispatcher. | EventDispatcher | ||
Запрашивает разрешение на доступ к пользовательскому интерфейсу камеры. | CameraUI | ||
Задает доступность динамического свойства для операций цикла. | Object | ||
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали. | Object | ||
Возвращает строковое представление заданного объекта. | Object | ||
Возвращает элементарное значение заданного объекта. | Object | ||
Проверяет, зарегистрирован ли прослушиватель события для указанного типа события с данным объектом EventDispatcher или любым его предшественником. | EventDispatcher |
Событие | Сводка | Определено | ||
---|---|---|---|---|
[многоадресное событие] Отправляется, когда проигрыватель Flash Player или приложение AIR перемещается в фокус операционной системы и становится активным. | EventDispatcher | |||
Событие cancel отправляется, когда пользователь закрывает пользовательский интерфейс камеры, не сохраняя изображение или видео. | CameraUI | |||
Событие complete отправляется после захвата пользователем изображения или видео в пользовательском интерфейсе камеры. | CameraUI | |||
[многоадресное событие] Отправляется, когда проигрыватель Flash Player или приложение AIR теряет фокус системы и становится неактивным. | EventDispatcher | |||
Событие error отправляется, если не удается открыть стандартную камеру. | CameraUI | |||
Отправляется, когда приложение запрашивает разрешение на доступ к пользовательскому интерфейсу камеры. | CameraUI |
isSupported | свойство |
isSupported:Boolean
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2.5 |
Показывает наличие поддержки класса CameraUI на текущем устройстве. В настоящий момент эта функция поддерживается только в программах AIR на платформе Android.
Реализация
public static function get isSupported():Boolean
permissionStatus | свойство |
CameraUI | () | Конструктор |
public function CameraUI()
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2.5 |
Создает объект CameraUI.
launch | () | метод |
public function launch(requestedMediaType:String):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2.5 |
Запускает стандартную программу камеры на устройстве.
С помощью этого класса можно захватить неподвижные изображения или видео. При записи видео на устройстве используется профиль видеокамеры «Низкое качество».
При вызове метода launch()
на устройстве открывается стандартная программа камеры. Программа AIR теряет фокус и ожидает, когда пользователь получит неподвижное изображение или завершит запись видео. Когда пользователь выполнит захват необходимого объекта мультимедиа, программа AIR снова получает фокус и этот объект CameraUI отправляет событие complete
. Если пользователь отменяет операцию, этот объект CameraUI отправляет событие cancel
.
Примечание. Программа AIR может быть закрыта операционной системой Android, если она работает в фоновом режиме и ожидает, когда пользователь завершит получение изображения или видео. В этом случае пользователь должен перезапустить программу. Программа AIR не отправляет событие media для предыдущего захвата изображения.
Доступ к захваченному мультимедийному файлу можно получить с использованием свойства data
объекта MediaEvent, отправленного для события complete
. Это свойство является экземпляром класса MediaPromise, который можно загрузить в программу с использованием метода loadFilePromise()
класса Loader. Обратите внимание, что камера устройства поддерживает сохранение захваченного мультимедийного содержимого во множестве форматов. В этом отношении видео является более проблематичным. Отображение захваченного мультимедийного содержимого в программе AIR может быть невозможно.
Параметры
requestedMediaType:String — Тип захватываемого объекта мультимедиа. Действительные значения для этого параметра определены в классе MediaType:
|
События
complete: — Отправляется после захвата объекта мультимедиа.
| |
cancel: — Отправляется, когда пользователь выходит из встроенной программы камеры, не захватив объект мультимедиа.
| |
error: — Отправляется, если стандартная программа камеры уже используется.
| |
error: — Отправляется, если программа AIR, работающая в фоновом режиме, вызывает эту функцию.
|
Выдает
PermissionError — Приложение не имеет разрешения на использование камеры.
|
Связанные элементы API
requestPermission | () | метод |
public function requestPermission():void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 24.0 |
Запрашивает разрешение на доступ к пользовательскому интерфейсу камеры.
События
PermissionStatus: — отправляется, когда запрашиваемое разрешение предоставляется или не предоставляется пользователем.
|
cancel | Событие |
flash.events.Event
свойство Event.type =
flash.events.Event.CANCEL
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2.5 |
Событие cancel
отправляется, когда пользователь закрывает пользовательский интерфейс камеры, не сохраняя изображение или видео.
Event.CANCEL
определяет значение свойства type
объекта события cancel
.
Это событие имеет следующие свойства:
Свойство | Значение |
---|---|
bubbles | false |
cancelable | false ; поведение по умолчанию, подлежащее отмене, не определено. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
target | Ссылка на объект, для которого отменена операция. |
complete | Событие |
flash.events.MediaEvent
свойство MediaEvent.type =
flash.events.MediaEvent.COMPLETE
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2.5 |
Событие complete
отправляется после захвата пользователем изображения или видео в пользовательском интерфейсе камеры.
complete
.
Задает значение свойства type
объекта события MediaEvent
. Это событие имеет следующие свойства:
Свойство | Значение |
---|---|
bubbles | false |
cancelable | false ; поведение по умолчанию, подлежащее отмене, не определено. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
data | Объект MediaPromise доступного экземпляра мультимедиа. |
error | Событие |
flash.events.ErrorEvent
свойство ErrorEvent.type =
flash.events.ErrorEvent.ERROR
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2.5 |
Событие error
отправляется, если не удается открыть стандартную камеру.
type
объекта события error
.
Это событие имеет следующие свойства:
Свойство | Значение |
---|---|
bubbles | false |
cancelable | false ; поведение по умолчанию, подлежащее отмене, не определено. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
target | Объект, испытывающий сбой сетевой операции. |
text | Текст, отображаемый в качестве сообщения об ошибке. |
permissionStatus | Событие |
flash.events.PermissionEvent
свойство PermissionEvent.type =
flash.events.PermissionEvent.PERMISSION_STATUS
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 24.0 |
Отправляется, когда приложение запрашивает разрешение на доступ к пользовательскому интерфейсу камеры. Проверяет значение свойства status
, чтобы определить, предоставлено разрешение или нет
Связанные элементы API
package { import flash.desktop.NativeApplication; import flash.display.Loader; import flash.display.MovieClip; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.ErrorEvent; import flash.events.Event; import flash.events.IOErrorEvent; import flash.events.MediaEvent; import flash.media.CameraUI; import flash.media.MediaPromise; import flash.media.MediaType; public class CameraUIStillImage extends MovieClip{ private var deviceCameraApp:CameraUI = new CameraUI(); private var imageLoader:Loader; public function CameraUIStillImage() { this.stage.align = StageAlign.TOP_LEFT; this.stage.scaleMode = StageScaleMode.NO_SCALE; if( CameraUI.isSupported ) { trace( "Initializing camera..." ); deviceCameraApp.addEventListener( MediaEvent.COMPLETE, imageCaptured ); deviceCameraApp.addEventListener( Event.CANCEL, captureCanceled ); deviceCameraApp.addEventListener( ErrorEvent.ERROR, cameraError ); deviceCameraApp.launch( MediaType.IMAGE ); } else { trace( "Camera interface is not supported."); } } private function imageCaptured( event:MediaEvent ):void { trace( "Media captured..." ); var imagePromise:MediaPromise = event.data; if( imagePromise.isAsync ) { trace( "Asynchronous media promise." ); imageLoader = new Loader(); imageLoader.contentLoaderInfo.addEventListener( Event.COMPLETE, asyncImageLoaded ); imageLoader.addEventListener( IOErrorEvent.IO_ERROR, cameraError ); imageLoader.loadFilePromise( imagePromise ); } else { trace( "Synchronous media promise." ); imageLoader.loadFilePromise( imagePromise ); showMedia( imageLoader ); } } private function captureCanceled( event:Event ):void { trace( "Media capture canceled." ); NativeApplication.nativeApplication.exit(); } private function asyncImageLoaded( event:Event ):void { trace( "Media loaded in memory." ); showMedia( imageLoader ); } private function showMedia( loader:Loader ):void { this.addChild( loader ); } private function cameraError( error:ErrorEvent ):void { trace( "Error:" + error.text ); NativeApplication.nativeApplication.exit(); } } }
Tue Jun 12 2018, 11:34 AM Z