Referência do ActionScript® 3.0 para Adobe® Flash® Platform
Início  |  Ocultar listas de Pacotes e Classes |  Pacotes  |  Classes  |  Novidades  |  Índice  |  Apêndices  |  Por que inglês?
Filtros: AIR 30.0 e anterior, Flash Player 30.0 e anterior, Flash Lite 4
Flex 4.6 e anterior, Flash Pro CS6 e anterior
Ocultar filtros
flash.media 

Camera  - AS3

Pacotesx

Nível superior
adobe.utils
air.desktop
air.net
air.update
air.update.events
coldfusion.air
coldfusion.air.errors
coldfusion.air.events
coldfusion.service
coldfusion.service.events
coldfusion.service.mxml
com.adobe.acm.solutions.authoring.domain.extensions
com.adobe.acm.solutions.ccr.domain.extensions
com.adobe.consulting.pst.vo
com.adobe.dct.component
com.adobe.dct.component.datadictionary
com.adobe.dct.component.datadictionaryElement
com.adobe.dct.component.dataElementsPanel
com.adobe.dct.component.toolbars
com.adobe.dct.event
com.adobe.dct.exp
com.adobe.dct.model
com.adobe.dct.service
com.adobe.dct.service.provider
com.adobe.dct.transfer
com.adobe.dct.util
com.adobe.dct.view
com.adobe.ep.taskmanagement.domain
com.adobe.ep.taskmanagement.event
com.adobe.ep.taskmanagement.filter
com.adobe.ep.taskmanagement.services
com.adobe.ep.taskmanagement.util
com.adobe.ep.ux.attachmentlist.component
com.adobe.ep.ux.attachmentlist.domain
com.adobe.ep.ux.attachmentlist.domain.events
com.adobe.ep.ux.attachmentlist.domain.renderers
com.adobe.ep.ux.attachmentlist.skin
com.adobe.ep.ux.attachmentlist.skin.renderers
com.adobe.ep.ux.content.event
com.adobe.ep.ux.content.factory
com.adobe.ep.ux.content.handlers
com.adobe.ep.ux.content.managers
com.adobe.ep.ux.content.model.asset
com.adobe.ep.ux.content.model.preview
com.adobe.ep.ux.content.model.relation
com.adobe.ep.ux.content.model.search
com.adobe.ep.ux.content.model.toolbar
com.adobe.ep.ux.content.search
com.adobe.ep.ux.content.services
com.adobe.ep.ux.content.services.load
com.adobe.ep.ux.content.services.permissions
com.adobe.ep.ux.content.services.preview
com.adobe.ep.ux.content.services.providers
com.adobe.ep.ux.content.services.query
com.adobe.ep.ux.content.services.relationships
com.adobe.ep.ux.content.services.search.lccontent
com.adobe.ep.ux.content.services.version
com.adobe.ep.ux.content.view
com.adobe.ep.ux.content.view.components.activate
com.adobe.ep.ux.content.view.components.grid
com.adobe.ep.ux.content.view.components.grid.hover
com.adobe.ep.ux.content.view.components.grid.hover.component
com.adobe.ep.ux.content.view.components.grid.renderers
com.adobe.ep.ux.content.view.components.relationships
com.adobe.ep.ux.content.view.components.review
com.adobe.ep.ux.content.view.components.search.renderers
com.adobe.ep.ux.content.view.components.searchpod
com.adobe.ep.ux.content.view.components.toolbar
com.adobe.ep.ux.content.view.components.toolbar.controlRenderers
com.adobe.ep.ux.content.view.components.version
com.adobe.ep.ux.documentsubmit.component
com.adobe.ep.ux.documentsubmit.domain
com.adobe.ep.ux.documentsubmit.skin
com.adobe.ep.ux.taskaction.component
com.adobe.ep.ux.taskaction.domain
com.adobe.ep.ux.taskaction.domain.events
com.adobe.ep.ux.taskaction.skin
com.adobe.ep.ux.taskdetails.component
com.adobe.ep.ux.taskdetails.domain
com.adobe.ep.ux.taskdetails.skin
com.adobe.ep.ux.tasklist.component
com.adobe.ep.ux.tasklist.domain
com.adobe.ep.ux.tasklist.skin
com.adobe.ep.ux.webdocumentviewer.domain
com.adobe.exm.expression
com.adobe.exm.expression.error
com.adobe.exm.expression.event
com.adobe.exm.expression.impl
com.adobe.fiber.runtime.lib
com.adobe.fiber.services
com.adobe.fiber.services.wrapper
com.adobe.fiber.styles
com.adobe.fiber.util
com.adobe.fiber.valueobjects
com.adobe.gravity.binding
com.adobe.gravity.context
com.adobe.gravity.flex.bundleloader
com.adobe.gravity.flex.progress
com.adobe.gravity.flex.serviceloader
com.adobe.gravity.framework
com.adobe.gravity.init
com.adobe.gravity.service.bundleloader
com.adobe.gravity.service.logging
com.adobe.gravity.service.manifest
com.adobe.gravity.service.progress
com.adobe.gravity.tracker
com.adobe.gravity.ui
com.adobe.gravity.utility
com.adobe.gravity.utility.async
com.adobe.gravity.utility.error
com.adobe.gravity.utility.events
com.adobe.gravity.utility.factory
com.adobe.gravity.utility.flex.async
com.adobe.gravity.utility.logging
com.adobe.gravity.utility.message
com.adobe.gravity.utility.sequence
com.adobe.gravity.utility.url
com.adobe.guides.control
com.adobe.guides.domain
com.adobe.guides.i18n
com.adobe.guides.spark.components.skins
com.adobe.guides.spark.components.skins.mx
com.adobe.guides.spark.headers.components
com.adobe.guides.spark.headers.skins
com.adobe.guides.spark.layouts.components
com.adobe.guides.spark.layouts.skins
com.adobe.guides.spark.navigators.components
com.adobe.guides.spark.navigators.renderers
com.adobe.guides.spark.navigators.skins
com.adobe.guides.spark.util
com.adobe.guides.spark.wrappers.components
com.adobe.guides.spark.wrappers.skins
com.adobe.guides.submit
com.adobe.icc.dc.domain
com.adobe.icc.dc.domain.factory
com.adobe.icc.editors.events
com.adobe.icc.editors.handlers
com.adobe.icc.editors.managers
com.adobe.icc.editors.model
com.adobe.icc.editors.model.config
com.adobe.icc.editors.model.el
com.adobe.icc.editors.model.el.operands
com.adobe.icc.editors.model.el.operators
com.adobe.icc.enum
com.adobe.icc.external.dc
com.adobe.icc.obj
com.adobe.icc.services
com.adobe.icc.services.category
com.adobe.icc.services.config
com.adobe.icc.services.download
com.adobe.icc.services.export
com.adobe.icc.services.external
com.adobe.icc.services.formbridge
com.adobe.icc.services.fragmentlayout
com.adobe.icc.services.layout
com.adobe.icc.services.letter
com.adobe.icc.services.locator
com.adobe.icc.services.module
com.adobe.icc.services.render
com.adobe.icc.services.submit
com.adobe.icc.services.user
com.adobe.icc.token
com.adobe.icc.vo
com.adobe.icc.vo.render
com.adobe.icomm.assetplacement.controller
com.adobe.icomm.assetplacement.controller.utils
com.adobe.icomm.assetplacement.data
com.adobe.icomm.assetplacement.model
com.adobe.livecycle.assetmanager.client
com.adobe.livecycle.assetmanager.client.event
com.adobe.livecycle.assetmanager.client.handler
com.adobe.livecycle.assetmanager.client.managers
com.adobe.livecycle.assetmanager.client.model
com.adobe.livecycle.assetmanager.client.model.cms
com.adobe.livecycle.assetmanager.client.service
com.adobe.livecycle.assetmanager.client.service.search
com.adobe.livecycle.assetmanager.client.service.search.cms
com.adobe.livecycle.assetmanager.client.utils
com.adobe.livecycle.content
com.adobe.livecycle.rca.model
com.adobe.livecycle.rca.model.constant
com.adobe.livecycle.rca.model.document
com.adobe.livecycle.rca.model.participant
com.adobe.livecycle.rca.model.reminder
com.adobe.livecycle.rca.model.stage
com.adobe.livecycle.rca.service
com.adobe.livecycle.rca.service.core
com.adobe.livecycle.rca.service.core.delegate
com.adobe.livecycle.rca.service.process
com.adobe.livecycle.rca.service.process.delegate
com.adobe.livecycle.rca.token
com.adobe.livecycle.ria.security.api
com.adobe.livecycle.ria.security.service
com.adobe.mosaic.layouts
com.adobe.mosaic.layouts.dragAndDrop
com.adobe.mosaic.layouts.interfaces
com.adobe.mosaic.mxml
com.adobe.mosaic.om.constants
com.adobe.mosaic.om.events
com.adobe.mosaic.om.impl
com.adobe.mosaic.om.interfaces
com.adobe.mosaic.skinning
com.adobe.mosaic.sparklib.editors
com.adobe.mosaic.sparklib.optionMenu
com.adobe.mosaic.sparklib.scrollableMenu
com.adobe.mosaic.sparklib.scrollableMenu.skins
com.adobe.mosaic.sparklib.tabLayout
com.adobe.mosaic.sparklib.tabLayout.events
com.adobe.mosaic.sparklib.tabLayout.layouts
com.adobe.mosaic.sparklib.tabLayout.skins
com.adobe.mosaic.sparklib.text
com.adobe.mosaic.sparklib.util
com.adobe.solutions.acm.authoring.presentation
com.adobe.solutions.acm.authoring.presentation.actionbar
com.adobe.solutions.acm.authoring.presentation.common
com.adobe.solutions.acm.authoring.presentation.events
com.adobe.solutions.acm.authoring.presentation.fragment
com.adobe.solutions.acm.authoring.presentation.letter
com.adobe.solutions.acm.authoring.presentation.letter.data
com.adobe.solutions.acm.authoring.presentation.preview
com.adobe.solutions.acm.authoring.presentation.rte
com.adobe.solutions.acm.ccr.presentation
com.adobe.solutions.acm.ccr.presentation.contentcapture
com.adobe.solutions.acm.ccr.presentation.contentcapture.events
com.adobe.solutions.acm.ccr.presentation.contentcapture.preview
com.adobe.solutions.acm.ccr.presentation.datacapture
com.adobe.solutions.acm.ccr.presentation.datacapture.renderers
com.adobe.solutions.acm.ccr.presentation.pdf
com.adobe.solutions.exm
com.adobe.solutions.exm.authoring
com.adobe.solutions.exm.authoring.components.controls
com.adobe.solutions.exm.authoring.components.toolbars
com.adobe.solutions.exm.authoring.domain
com.adobe.solutions.exm.authoring.domain.expression
com.adobe.solutions.exm.authoring.domain.impl
com.adobe.solutions.exm.authoring.domain.method
com.adobe.solutions.exm.authoring.domain.variable
com.adobe.solutions.exm.authoring.enum
com.adobe.solutions.exm.authoring.events
com.adobe.solutions.exm.authoring.model
com.adobe.solutions.exm.authoring.renderer
com.adobe.solutions.exm.authoring.view
com.adobe.solutions.exm.expression
com.adobe.solutions.exm.impl
com.adobe.solutions.exm.impl.method
com.adobe.solutions.exm.method
com.adobe.solutions.exm.mock
com.adobe.solutions.exm.mock.method
com.adobe.solutions.exm.runtime
com.adobe.solutions.exm.runtime.impl
com.adobe.solutions.exm.variable
com.adobe.solutions.prm.constant
com.adobe.solutions.prm.domain
com.adobe.solutions.prm.domain.factory
com.adobe.solutions.prm.domain.impl
com.adobe.solutions.prm.domain.manager
com.adobe.solutions.prm.presentation.asset
com.adobe.solutions.prm.presentation.constant
com.adobe.solutions.prm.presentation.document
com.adobe.solutions.prm.presentation.event
com.adobe.solutions.prm.presentation.file
com.adobe.solutions.prm.presentation.project
com.adobe.solutions.prm.presentation.team
com.adobe.solutions.prm.presentation.util
com.adobe.solutions.prm.service
com.adobe.solutions.prm.services.impl
com.adobe.solutions.prm.vo
com.adobe.solutions.rca.constant
com.adobe.solutions.rca.domain
com.adobe.solutions.rca.domain.common
com.adobe.solutions.rca.domain.factory
com.adobe.solutions.rca.domain.impl
com.adobe.solutions.rca.domain.impl.manager
com.adobe.solutions.rca.domain.manager
com.adobe.solutions.rca.presentation
com.adobe.solutions.rca.presentation.comment
com.adobe.solutions.rca.presentation.constant
com.adobe.solutions.rca.presentation.event
com.adobe.solutions.rca.presentation.gantt
com.adobe.solutions.rca.presentation.gantt.ruler
com.adobe.solutions.rca.presentation.template
com.adobe.solutions.rca.presentation.template.audit
com.adobe.solutions.rca.presentation.template.definition
com.adobe.solutions.rca.presentation.template.documents
com.adobe.solutions.rca.presentation.template.stages
com.adobe.solutions.rca.presentation.util
com.adobe.solutions.rca.service
com.adobe.solutions.rca.services.impl
com.adobe.solutions.rca.vo
com.adobe.solutions.rca.vo.um
com.adobe.viewsource
fl.accessibility
fl.containers
fl.controls
fl.controls.dataGridClasses
fl.controls.listClasses
fl.controls.progressBarClasses
fl.core
fl.data
fl.display
fl.events
fl.ik
fl.lang
fl.livepreview
fl.managers
fl.motion
fl.motion.easing
fl.rsl
fl.text
fl.transitions
fl.transitions.easing
fl.video
flash.accessibility
flash.concurrent
flash.crypto
flash.data
flash.desktop
flash.display
flash.display3D
flash.display3D.textures
flash.errors
flash.events
flash.external
flash.filesystem
flash.filters
flash.geom
flash.globalization
flash.html
flash.media
flash.net
flash.net.dns
flash.net.drm
flash.notifications
flash.permissions
flash.printing
flash.profiler
flash.sampler
flash.security
flash.sensors
flash.system
flash.text
flash.text.engine
flash.text.ime
flash.ui
flash.utils
flash.xml
flashx.textLayout
flashx.textLayout.compose
flashx.textLayout.container
flashx.textLayout.conversion
flashx.textLayout.edit
flashx.textLayout.elements
flashx.textLayout.events
flashx.textLayout.factory
flashx.textLayout.formats
flashx.textLayout.operations
flashx.textLayout.utils
flashx.undo
ga.controls
ga.layouts
ga.model
ga.uiComponents
ga.util
ga.views
ga.wrappers
lc.foundation
lc.foundation.domain
lc.foundation.events
lc.foundation.ui
lc.foundation.util
lc.preloader
lc.procmgmt
lc.procmgmt.commands
lc.procmgmt.domain
lc.procmgmt.events
lc.procmgmt.formbridge
lc.procmgmt.impl
lc.procmgmt.ui.attachments
lc.procmgmt.ui.controls
lc.procmgmt.ui.controls.card
lc.procmgmt.ui.controls.renderer
lc.procmgmt.ui.help
lc.procmgmt.ui.layout
lc.procmgmt.ui.presentationmodel
lc.procmgmt.ui.process
lc.procmgmt.ui.search
lc.procmgmt.ui.startpoint
lc.procmgmt.ui.task
lc.procmgmt.ui.task.form
lc.procmgmt.ui.task.form.commands
lc.procmgmt.ui.tracking
mx.accessibility
mx.automation
mx.automation.air
mx.automation.delegates
mx.automation.delegates.advancedDataGrid
mx.automation.delegates.charts
mx.automation.delegates.containers
mx.automation.delegates.controls
mx.automation.delegates.controls.dataGridClasses
mx.automation.delegates.controls.fileSystemClasses
mx.automation.delegates.core
mx.automation.delegates.flashflexkit
mx.automation.events
mx.binding
mx.binding.utils
mx.charts
mx.charts.chartClasses
mx.charts.effects
mx.charts.effects.effectClasses
mx.charts.events
mx.charts.renderers
mx.charts.series
mx.charts.series.items
mx.charts.series.renderData
mx.charts.styles
mx.collections
mx.collections.errors
mx.containers
mx.containers.accordionClasses
mx.containers.dividedBoxClasses
mx.containers.errors
mx.containers.utilityClasses
mx.controls
mx.controls.advancedDataGridClasses
mx.controls.dataGridClasses
mx.controls.listClasses
mx.controls.menuClasses
mx.controls.olapDataGridClasses
mx.controls.scrollClasses
mx.controls.sliderClasses
mx.controls.textClasses
mx.controls.treeClasses
mx.controls.videoClasses
mx.core
mx.core.windowClasses
mx.data
mx.data.crypto
mx.data.errors
mx.data.events
mx.data.messages
mx.data.mxml
mx.data.offline.errors
mx.data.utils
mx.effects
mx.effects.easing
mx.effects.effectClasses
mx.events
mx.filters
mx.flash
mx.formatters
mx.geom
mx.graphics
mx.graphics.codec
mx.graphics.shaderClasses
mx.logging
mx.logging.errors
mx.logging.targets
mx.managers
mx.messaging
mx.messaging.channels
mx.messaging.config
mx.messaging.errors
mx.messaging.events
mx.messaging.management
mx.messaging.messages
mx.modules
mx.netmon
mx.olap
mx.olap.aggregators
mx.preloaders
mx.printing
mx.resources
mx.rpc
mx.rpc.events
mx.rpc.http
mx.rpc.http.mxml
mx.rpc.livecycle
mx.rpc.mxml
mx.rpc.remoting
mx.rpc.remoting.mxml
mx.rpc.soap
mx.rpc.soap.mxml
mx.rpc.wsdl
mx.rpc.xml
mx.skins
mx.skins.halo
mx.skins.spark
mx.skins.wireframe
mx.skins.wireframe.windowChrome
mx.states
mx.styles
mx.utils
mx.validators
org.osmf.containers
org.osmf.display
org.osmf.elements
org.osmf.events
org.osmf.layout
org.osmf.logging
org.osmf.media
org.osmf.metadata
org.osmf.net
org.osmf.net.dvr
org.osmf.net.httpstreaming
org.osmf.net.metrics
org.osmf.net.qos
org.osmf.net.rtmpstreaming
org.osmf.net.rules
org.osmf.traits
org.osmf.utils
spark.accessibility
spark.automation.delegates
spark.automation.delegates.components
spark.automation.delegates.components.gridClasses
spark.automation.delegates.components.mediaClasses
spark.automation.delegates.components.supportClasses
spark.automation.delegates.skins.spark
spark.automation.events
spark.collections
spark.components
spark.components.calendarClasses
spark.components.gridClasses
spark.components.mediaClasses
spark.components.supportClasses
spark.components.windowClasses
spark.core
spark.effects
spark.effects.animation
spark.effects.easing
spark.effects.interpolation
spark.effects.supportClasses
spark.events
spark.filters
spark.formatters
spark.formatters.supportClasses
spark.globalization
spark.globalization.supportClasses
spark.layouts
spark.layouts.supportClasses
spark.managers
spark.modules
spark.preloaders
spark.primitives
spark.primitives.supportClasses
spark.skins
spark.skins.mobile
spark.skins.mobile.supportClasses
spark.skins.spark
spark.skins.spark.mediaClasses.fullScreen
spark.skins.spark.mediaClasses.normal
spark.skins.spark.windowChrome
spark.skins.wireframe
spark.skins.wireframe.mediaClasses
spark.skins.wireframe.mediaClasses.fullScreen
spark.transitions
spark.utils
spark.validators
spark.validators.supportClasses
xd.core.axm.enterprise.view.components
xd.core.axm.enterprise.view.skins
xd.core.axm.view.components
xd.core.axm.view.components.support

Elementos de linguagem

Constantes globais
Funções globais
Operadores
Instruções, palavras-chave e diretivas
Tipos especiais

Apêndices

Novidades
Erros do compilador
Avisos do compilador
Erros de runtime
Migrando para o ActionScript 3
Conjuntos de caracteres suportados
Tags MXML apenas
Elementos XML de movimento
Marcas de texto cronometradas
Lista de elementos deprecados
Constantes de Implementação de Acessibilidade
Como Usar Exemplos do ActionScript
Aspectos jurídicos
Pacoteflash.media
Classepublic final class Camera
HerançaCamera Inheritance EventDispatcher Inheritance Object

Versão da linguagem: ActionScript 3.0
Versões de runtime: AIR 1.0, Flash Player 9

Use a classe Camera para capturar vídeo da câmera do sistema cliente ou do dispositivo. Use a classe Video para monitorar o vídeo localmente. Use as classes NetConnection e NetStream para transmitir o vídeo para o Flash Media Server. O Flash Media Server pode enviar o fluxo de vídeo para outros servidores e transmiti-lo para outros clientes que executam o Flash Player ou o AIR.

Uma instância de Camera captura o vídeo na proporção de paisagem. Em dispositivos que podem alterar a orientação da tela, como celulares, um objeto Video anexado à câmera mostrará somente o vídeo direito em uma orientação com proporção de paisagem. Assim, aplicativos móveis devem usar a orientação de paisagem ao exibir vídeo e não devem girar automaticamente.

No iOS, o vídeo da câmera dianteira refletido. No Andróide, não.

Em dispositivos móveis com uma câmera com autofoco, o autofoco contínuo é ativado automaticamente. Se a câmera não oferecer suporte ao foco automático contínuo, e muitas câmeras de dispositivo móveis não o fazem, a câmera recebe o foco quando o objeto Camera é anexado a um fluxo de vídeo e sempre que o método setMode() é chamado. Nos computadores pessoais, o comportamento de autofoco é dependente do driver da câmera e das configurações.

Em um aplicativo do AIR no Android e no iOS, a câmera não irá capturar o vídeo enquanto um aplicativo do AIR não for o aplicativo ativo em primeiro plano. Além disso, as conexões de streaming poderão cair quando o aplicativo estiver em segundo plano. No iOS, o vídeo da câmera não poderá ser exibido quando um aplicativo usar o modo de renderização de GPU. O vídeo da câmera ainda pode ser transmitido para um servidor.

Suporte a perfil do AIR: não há suporte para este recurso em dispositivos AIR for TV. Consulte Suporte a perfil do AIR para obter mais informações sobre o suporte de API através de múltiplos perfis. Observe que, para dispositivos AIR for TV, Camera.isSupported é true, mas Camera.getCamera() sempre retorna null. Não há suporte ao acesso à câmara em navegadores móveis.

Para obter informações sobre a captura de áudio, consulte a classe Microphone.

Importante: o tempo de execução exibe uma caixa de diálogo Privacidade que permite que o usuário escolha entre permitir ou negar acesso à câmera. O tamanho da janela do aplicativo deve ter, pelo menos, 215 x 138 pixels; este é o tamanho mínimo necessário para que a caixa de diálogo seja exibida.

Para criar ou fazer referência a um objeto Camera, use o método getCamera().

Veja os exemplos

Saiba mais

Elementos da API relacionados



Propriedades públicas
 PropriedadeDefinido por
  activityLevel : Number
[somente leitura] A quantidade de movimento que a câmera está detectando.
Camera
  bandwidth : int
[somente leitura] A quantidade máxima de largura de banda que o feed de vídeo de saída atual pode usar, em bytes.
Camera
 Inheritedconstructor : Object
Uma referência ao objeto de classe ou à função de construtor de uma determinada ocorrência de objeto.
Object
  currentFPS : Number
[somente leitura] A taxa na qual a câmera está capturando dados, em quadros por segundo.
Camera
  fps : Number
[somente leitura] A taxa máxima na qual a câmera pode capturar dados, em quadros por segundo.
Camera
  height : int
[somente leitura] A altura da captura atual, em pixels.
Camera
  index : int
[somente leitura] Um índice com base em zero que especifica a posição da câmera na matriz Camera.names, que enumera todas as câmeras disponíveis.
Camera
  isSupported : Boolean
[estático] [somente leitura] A propriedade isSupported será definida como true se a classe Camera for suportada na plataforma atual; de outra maneira, ela será definida como false.
Camera
  keyFrameInterval : int
[somente leitura] O número de quadros de vídeo transmitidos integralmente (chamados de quadros-chave) em vez de serem interpolados pelo algoritmo de compactação de vídeo.
Camera
  loopback : Boolean
[somente leitura] Indica se uma exibição local do que a câmera está capturando é compactada e descompactada (verdadeiro), como seria o caso de uma transmissão ao vivo usando o Flash Media Server, ou não compactada (falso).
Camera
  motionLevel : int
[somente leitura] A quantidade de movimento necessária para chamar o evento de atividade.
Camera
  motionTimeout : int
[somente leitura] O número de milésimos de segundo entre o momento em que a câmera para de detectar o movimento e o momento em que o evento de atividade é invocado.
Camera
  muted : Boolean
[somente leitura] Um valor booliano que indica se o usuário tem acesso negado à câmera (verdadeiro) ou permitido (falso) na caixa de diálogo Privacidade do Flash Player.
Camera
  name : String
[somente leitura] O nome da câmera atual, retornado pelo hardware da câmera.
Camera
  names : Array
[estático] [somente leitura] Uma matriz de strings que contém os nomes de todas as câmeras disponíveis.
Camera
      permissionStatus : String
[estático] [somente leitura] Determina se o aplicativo recebeu permissão para usar a câmera.
Camera
      position : String
[somente leitura] Especifica o lado de um dispositivo no qual a câmera se localiza.
Camera
  quality : int
[somente leitura] O nível necessário de qualidade da imagem, determinado pela intensidade de compactação que está sendo aplicada a cada quadro de vídeo.
Camera
  width : int
[somente leitura] A largura da captura atual, em pixels.
Camera
Métodos públicos
 MétodoDefinido por
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registra um objeto de ouvinte de evento em um objeto EventDispatcher, de forma que o ouvinte receba a notificação de um evento.
EventDispatcher
  
Preenche uma matriz de bytes com base em uma região retangular de dados de pixel. Grava um inteiro sem sinal (um valor de pixel não multiplicado 32 bits) para cada pixel na matriz de bytes.
Camera
  
copyToVector(rect:Rectangle, destination:Vector.<uint>):void
Preenche um vetor com base em uma região retangular dos dados de pixel.
Camera
 Inherited
Envia um evento para o fluxo de eventos.
EventDispatcher
  
Copia o último quadro em um bitmap.
Camera
  
getCamera(name:String = null):Camera
[estático] Retorna uma referência a um objeto Camera para captura de vídeo.
Camera
 Inherited
Verifica se o objeto EventDispatcher tem ouvintes registrados para um tipo específico de evento.
EventDispatcher
 Inherited
Indica se um objeto tem uma propriedade especificada definida.
Object
 Inherited
Indica se uma ocorrência da classe Object está na cadeia de protótipos do objeto especificado como o parâmetro.
Object
 Inherited
Indica se a propriedade especificada existe e é enumerável.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Remove um ouvinte do objeto EventDispatcher.
EventDispatcher
  
Solicita a permissão da câmera para o aplicativo.
Camera
  
setKeyFrameInterval(keyFrameInterval:int):void
Especifica quais quadros de vídeo são transmitidos integralmente (chamados de quadros-chave) em vez de serem interpolados pelo algoritmo de compactação de vídeo.
Camera
  
setLoopback(compress:Boolean = false):void
Especifica se um fluxo de vídeo compactado será ou não usado para uma exibição local da câmera.
Camera
  
setMode(width:int, height:int, fps:Number, favorArea:Boolean = true):void
Define o modo de captura da câmera como o modo nativo que melhor atende aos requisitos especificados.
Camera
  
setMotionLevel(motionLevel:int, timeout:int = 2000):void
Especifica quanto movimento é necessário para despachar o evento de atividade.
Camera
 Inherited
Define a disponibilidade de uma propriedade dinâmica para operações de repetição.
Object
  
setQuality(bandwidth:int, quality:int):void
Define a quantidade máxima de largura de banda por segundo ou a qualidade de imagem necessária do feed de vídeo de saída atual.
Camera
 Inherited
Retorna a representação da string deste objeto, formatado segundo as convenções específicas para a localidade.
Object
 Inherited
Retorna a representação de string do objeto especificado.
Object
 Inherited
Retorna o valor primitivo do objeto especificado.
Object
 Inherited
Verifica se um ouvinte de evento está registrado nesse objeto EventDispatcher ou em qualquer um de seus ancestrais para o tipo de evento especificado.
EventDispatcher
Eventos
 Evento Resumo Definido por
 Inherited[transmissão de evento] Despachado quando o Flash Player ou o aplicativo do AIR ganha o foco do sistema operacional e está se tornando inativo.EventDispatcher
  Despachado quando uma câmera inicia ou encerra uma sessão.Camera
 Inherited[transmissão de evento] Despachado quando o Flash Player ou o aplicativo do AIR perde o foco do sistema operacional e está se tornando inativo.EventDispatcher
  Será despachado quando o aplicativo solicitar permissão para usar a câmera no dispositivo.Camera
  Despachado quando uma câmera relata seu status.Camera
  Enviado depois que um novo quadro de câmera é processado pelo runtime e disponibilizado para cópia.Camera
Detalhes da propriedade

activityLevel

propriedade
activityLevel:Number  [somente leitura]

Versão da linguagem: ActionScript 3.0
Versões de runtime: AIR 1.0, Flash Player 9

A quantidade de movimento que a câmera está detectando. Os valores variam de 0 (não há movimento sendo detectado) a 100 (está sendo detectada uma grande quantidade de movimento). O valor dessa propriedade pode ajudá-lo a determinar se você precisa transmitir uma configuração para o método setMotionLevel().

Se a câmera está disponível, mas ainda não está sendo usada porque o método Video.attachCamera() não foi chamado, essa propriedade é definida como -1.

Se você estiver realizando streaming apenas do vídeo local descompactado, essa propriedade é definida apenas se você tiver atribuído uma função para o manipulador de eventos. Do contrário, ele fica indefinido.



Implementação
    public function get activityLevel():Number

Lança
PermissionError — O aplicativo não tem permissão para usar a câmera.

Elementos da API relacionados

bandwidth

propriedade 
bandwidth:int  [somente leitura]

Versão da linguagem: ActionScript 3.0
Versões de runtime: AIR 1.0, Flash Player 9

A quantidade máxima de largura de banda que o feed de vídeo de saída atual pode usar, em bytes. O valor 0 significa que o feed pode usar tanta largura de banda quanto for necessário para manter a qualidade do quadro desejada.

Para definir essa propriedade, use o método setQuality().



Implementação
    public function get bandwidth():int

Lança
PermissionError — O aplicativo não tem permissão para usar a câmera.

Elementos da API relacionados

currentFPS

propriedade 
currentFPS:Number  [somente leitura]

Versão da linguagem: ActionScript 3.0
Versões de runtime: AIR 1.0, Flash Player 9

A taxa na qual a câmera está capturando dados, em quadros por segundo. Essa propriedade não pode ser definida; no entanto, é possível usar o método setMode() para definir uma propriedade relacionada – fps – que especifica a taxa máxima de quadros com a qual você gostaria que a câmera capturasse os dados.



Implementação
    public function get currentFPS():Number

Lança
PermissionError — O aplicativo não tem permissão para usar a câmera.

Elementos da API relacionados

fps

propriedade 
fps:Number  [somente leitura]

Versão da linguagem: ActionScript 3.0
Versões de runtime: AIR 1.0, Flash Player 9

A taxa máxima na qual a câmera pode capturar dados, em quadros por segundo. A taxa máxima possível depende dos recursos da câmera; essa taxa de quadros pode não ser obtida.

  • Para definir um valor desejado para essa propriedade, use o método setMode().
  • Para determinar a taxa com a qual a câmera está atualmente capturando os dados, use a propriedade currentFPS.



Implementação
    public function get fps():Number

Lança
PermissionError — O aplicativo não tem permissão para usar a câmera.

Elementos da API relacionados

height

propriedade 
height:int  [somente leitura]

Versão da linguagem: ActionScript 3.0
Versões de runtime: AIR 1.0, Flash Player 9

A altura da captura atual, em pixels. Para definir um valor para essa propriedade, use o método setMode().



Implementação
    public function get height():int

Lança
PermissionError — O aplicativo não tem permissão para usar a câmera.

Elementos da API relacionados

index

propriedade 
index:int  [somente leitura]

Versão da linguagem: ActionScript 3.0
Versões de runtime: AIR 1.0, Flash Player 9

Um índice com base em zero que especifica a posição da câmera na matriz Camera.names, que enumera todas as câmeras disponíveis.



Implementação
    public function get index():int

Lança
PermissionError — O aplicativo não tem permissão para usar a câmera.

Elementos da API relacionados

isSupported

propriedade 
isSupported:Boolean  [somente leitura]

Versão da linguagem: ActionScript 3.0
Versões de runtime: Flash Player 10.1, AIR 2

A propriedade isSupported será definida como true se a classe Camera for suportada na plataforma atual; de outra maneira, ela será definida como false.



Implementação
    public static function get isSupported():Boolean

keyFrameInterval

propriedade 
keyFrameInterval:int  [somente leitura]

Versão da linguagem: ActionScript 3.0
Versões de runtime: AIR 1.0, Flash Player 9

O número de quadros de vídeo transmitidos integralmente (chamados de quadros-chave) em vez de serem interpolados pelo algoritmo de compactação de vídeo. O valor padrão é 15, o que significa que há um quadro-chave de 15 em 15 quadros. O valor 1 indica que todos os quadros são chave. Os valores permitidos são de 1 a 300.



Implementação
    public function get keyFrameInterval():int

Lança
PermissionError — O aplicativo não tem permissão para usar a câmera.

Elementos da API relacionados

loopback

propriedade 
loopback:Boolean  [somente leitura]

Versão da linguagem: ActionScript 3.0
Versões de runtime: AIR 1.0, Flash Player 9

Indica se uma exibição local do que a câmera está capturando é compactada e descompactada (true), como seria o caso de uma transmissão ao vivo usando o Flash Media Server, ou não compactada (false). O valor padrão é false.

Embora um fluxo compactado seja útil para testar, por exemplo, ao pré-visualizar as configurações de qualidade do vídeo, ele tem um custo de processamento significativo. A visualização local é compactada, editada para transmissão como seria em uma conexão ao vivo e depois descompactada para visualização local.

Para definir esse valor, use Camera.setLoopback(). Para definir a quantidade de compressão usada quando esta propriedade for verdadeira, use Camera.setQuality().



Implementação
    public function get loopback():Boolean

Lança
PermissionError — O aplicativo não tem permissão para usar a câmera.

Elementos da API relacionados

motionLevel

propriedade 
motionLevel:int  [somente leitura]

Versão da linguagem: ActionScript 3.0
Versões de runtime: AIR 1.0, Flash Player 9

A quantidade de movimento necessária para chamar o evento activity. A faixa de valores aceitável varia de 0 a 100. O valor padrão é 50.

O vídeo pode ser exibido independentemente do valor do parâmetro motionLevel. Para obter mais informações, consulte setMotionLevel().



Implementação
    public function get motionLevel():int

Lança
PermissionError — O aplicativo não tem permissão para usar a câmera.

Elementos da API relacionados

motionTimeout

propriedade 
motionTimeout:int  [somente leitura]

Versão da linguagem: ActionScript 3.0
Versões de runtime: AIR 1.0, Flash Player 9

O número de milésimos de segundo entre o momento em que a câmera para de detectar o movimento e o momento em que o evento activity é invocado. O valor padrão é de 2000 (2 segundos).

Para definir este valor, use setMotionLevel().



Implementação
    public function get motionTimeout():int

Lança
PermissionError — O aplicativo não tem permissão para usar a câmera.

Elementos da API relacionados

muted

propriedade 
muted:Boolean  [somente leitura]

Versão da linguagem: ActionScript 3.0
Versões de runtime: AIR 1.0, Flash Player 9

Um valor booliano que indica se o usuário tem acesso negado à câmera (true) ou permitido (false) na caixa de diálogo Privacidade do Flash Player. Quando esse valor for alterado, o evento status é despachado.



Implementação
    public function get muted():Boolean

Lança
PermissionError — O aplicativo não tem permissão para usar a câmera.

Elementos da API relacionados

name

propriedade 
name:String  [somente leitura]

Versão da linguagem: ActionScript 3.0
Versões de runtime: AIR 1.0, Flash Player 9

O nome da câmera atual, retornado pelo hardware da câmera.



Implementação
    public function get name():String

Lança
PermissionError — O aplicativo não tem permissão para usar a câmera.

Elementos da API relacionados

names

propriedade 
names:Array  [somente leitura]

Versão da linguagem: ActionScript 3.0
Versões de runtime: AIR 1.0, Flash Player 9

Uma matriz de strings que contém os nomes de todas as câmeras disponíveis. Acessar esta matriz não exibe a caixa de diálogo Flash Player Privacy. Esta matriz fornece o índice com base em zero de cada câmera e o número de câmeras no sistema (por meio de names.length).

A chamada para a propriedade names requer um exame extenso do hardware. Na maioria dos casos, você pode apenas usar a câmera padrão.



Implementação
    public static function get names():Array

Lança
PermissionError — O aplicativo não tem permissão para usar a câmera.

Elementos da API relacionados

    

permissionStatus

propriedade 
permissionStatus:String  [somente leitura]

Versão da linguagem: ActionScript 3.0
Versões de runtime: AIR 24.0

Determina se o aplicativo recebeu permissão para usar a câmera.



Implementação
    public static function get permissionStatus():String

Elementos da API relacionados

    

position

propriedade 
position:String  [somente leitura]

Versão da linguagem: ActionScript 3.0
Versões de runtime: AIR 3.0

Especifica o lado de um dispositivo em que a câmera está localizada.

Use a propriedade position para determinar se uma câmera em um dispositivo móvel está na parte frontal ou traseira do dispositivo. A seguinte função verifica cada câmera disponível até localizar uma câmera com a posição desejada. Se nenhuma câmera tiver a posição desejada, então a câmera padrão será retornada.

     function getCamera( position:String ):Camera
     {
       var camera:Camera;
       var cameraCount:uint = Camera.names.length;
      for ( var i:uint = 0; i < cameraCount; ++i )
      {
        camera = Camera.getCamera( String(i) );
        if ( camera.position == position ) return camera;
      }
      return Camera.getCamera();
     
     

Nos dispositivos móveis a posição da câmara geralmente é CameraPosition.FRONT ou CameraPosition.BACK. Se a posição da Câmera não puder ser determinada, a posição será relatada como CameraPosition.UNKNOWN. Nas plataformas de desktop, a posição é sempre CameraPosition.UNKNOWN.

As constantes dos valores válidos dessa propriedade são definidas na classe CameraPosition



Implementação
    public function get position():String

Lança
PermissionError — O aplicativo não tem permissão para usar a câmera.

Elementos da API relacionados

quality

propriedade 
quality:int  [somente leitura]

Versão da linguagem: ActionScript 3.0
Versões de runtime: AIR 1.0, Flash Player 9

O nível necessário de qualidade da imagem, determinado pela intensidade de compactação que está sendo aplicada a cada quadro de vídeo. Os valores aceitáveis de qualidade variam de 1 (qualidade mais baixa, compressão máxima) a 100 (qualidade mais alta, sem compressão). O valor padrão é 0, o que significa que a qualidade da imagem podem variar conforme necessário para não ultrapassar a largura de banda disponível.

Para definir essa propriedade, use o método setQuality().



Implementação
    public function get quality():int

Lança
PermissionError — O aplicativo não tem permissão para usar a câmera.

Elementos da API relacionados

width

propriedade 
width:int  [somente leitura]

Versão da linguagem: ActionScript 3.0
Versões de runtime: AIR 1.0, Flash Player 9

A largura da captura atual, em pixels. Para definir um valor desejado para essa propriedade, use o método setMode().



Implementação
    public function get width():int

Lança
PermissionError — O aplicativo não tem permissão para usar a câmera.

Elementos da API relacionados

Detalhes do método

copyToByteArray

()método
public function copyToByteArray(rect:Rectangle, destination:ByteArray):void

Versão da linguagem: ActionScript 3.0
Versões de runtime: Flash Player 11.4, AIR 3.4

Preenche uma matriz de bytes com base em uma região retangular dos dados de pixels

Grava um inteiro não sem sinal (um valor de pixel não multiplicado de 32 bits) para cada pixel na matriz de bytes. A matriz é redimensionada para o número necessário de bytes para conter todos os pixels.

Parâmetros

rect:Rectangle — Uma área retangular no objeto BitmapData atual.
 
destination:ByteArray — Um ByteArray representando os pixels no retângulo especificado.


Lança
PermissionError — O aplicativo não tem permissão para usar a câmera.
 
TypeError — O parâmetro ret é "null".
 
TypeError — O destino é nulo

Elementos da API relacionados

copyToVector

()método 
public function copyToVector(rect:Rectangle, destination:Vector.<uint>):void

Versão da linguagem: ActionScript 3.0
Versões de runtime: Flash Player 11.4, AIR 3.4

Preenche um vetor com base em uma região retangular dos dados de pixel.

Grava um inteiro não assinado (um valor de pixel não multiplicado de 32 bits) para cada pixel no vetor. O vetor é redimensionado para o número necessário de entradas para conter todos os pixels.

Parâmetros

rect:Rectangle — Uma área retangular no objeto BitmapData atual.
 
destination:Vector.<uint> — Um vetor.<uint> representando os pixels no Retângulo especificado.


Lança
PermissionError — O aplicativo não tem permissão para usar a câmera.
 
TypeError — O parâmetro ret é "null".
 
TypeError — O destino é nulo

Elementos da API relacionados

drawToBitmapData

()método 
public function drawToBitmapData(destination:BitmapData):void

Versão da linguagem: ActionScript 3.0
Versões de runtime: Flash Player 11.4, AIR 3.4

Copia o último quadro em um bitmap.

Esse método copia o conteúdo do último quadro dos dados de bitmap para uma ocorrência BitmapData.

Parâmetros

destination:BitmapData — Uma ocorrência de objeto de BitmapData para conter o último quadro.


Lança
ArgumentError — kInvalidBitmapDataError se o destino for muito pequeno

Elementos da API relacionados

getCamera

()método 
public static function getCamera(name:String = null):Camera

Versão da linguagem: ActionScript 3.0
Versões de runtime: AIR 1.0, Flash Player 9

Retorna uma referência a um objeto Camera para captura de vídeo. Para iniciar a captura do vídeo, você deve acoplar o objeto Camera a um objeto Video (consulte Video.attachCamera()). Para transmitir o vídeo para o Flash Media Server, chame NetStream.attachCamera() para acoplar o objeto Camera a um objeto NetStream.

Múltiplas chamadas ao método getCamera() fazem referência ao mesmo driver da câmera. Assim, se o código contiver algo como firstCam:Camera = getCamera() e secondCam:Camera = getCamera(), tanto firstCam quanto secondCam fazem referência à mesma câmera, que é a câmera padrão do usuário.

Em dispositivos móveis com câmeras com foco dianteiro e traseiro, só é possível capturar vídeo de uma câmera de cada vez.

Em geral, você não deve passar um valor para o parâmetro name; basta usar getCamera() para retornar uma referência à câmera padrão. Por meio do painel de configurações Camera (que será discutido depois nesta seção), o usuário pode especificar a câmera padrão a usar.

Não é possível usar o ActionScript para definir a configuração de permissão Permitir ou Negar para acessar a câmera, mas é possível exibir a caixa de diálogo de configuração da câmera do Adobe Flash Player onde as permissões do usuário podem ser definidas. Quando um arquivo SWF usando o método attachCamera() tenta anexar a câmera retornada pelo método getCamera() para um objeto Video ou NetStream, o Flash Player exibe uma caixa de diálogo que permite ao usuário selecionar se permite ou nega acesso à câmera. (O tamanho da janela do aplicativo deve ter, pelo menos, 215 x 138 pixels; este é o tamanho mínimo que o Flash Player exige para que a caixa de diálogo seja exibida.) Quando o usuário responde à caixa de diálogo de configurações da câmera, o Flash Player retorna um objeto de informação no evento status que indica a resposta do usuário: Camera.muted indica que o usuário negou acesso a uma câmera; Camera.Unmuted indica que o usuário permitiu o acesso a uma câmera. Para determinar se o usuário negou ou permitiu acesso à câmera sem manipular o evento status, use a propriedade muted.

No Flash Player, o usuário pode especificar configurações permanentes de privacidade para um determinado domínio, clicando com o botão direito (no Windows e no Linux) ou com o botão Control (no Macintosh), enquanto um arquivo SWF estiver sendo executado, selecionando Configurações, caixa de diálogo Privacidade e selecionando Lembrar. Se o usuário selecionar Lembrar, o Flash Player não pergunta mais se deve permitir ou negar aos arquivos SWF deste domínio o acesso à sua câmera.

Observação: O método attachCamera() não invocará a caixa de diálogo Permitir ou Negar acesso à câmera se o usuário negar o acesso selecionando Lembrar na caixa de diálogo Configurações do Flash Player. Neste caso, é possível solicitar ao usuário que altere a configuração exibindo o painel Privacidade do Flash Player para o usuário, usando Security.showSettings(SecurityPanel.PRIVACY).

Se getCamera() retornar null, a câmera está sendo usada por outro aplicativo, ou não há câmeras instaladas no sistema. Para determinar se há câmeras instaladas, use a propriedade names.length. Para exibir o painel Configurações da câmera do Flash Player, que permite que o usuário escolha a câmera que será a referência de getCamera(), use System.showSettings(SecurityPanel.CAMERA).

Analisar as câmeras do hardware é algo que leva tempo. Quando o tempo de execução encontra pelo menos uma câmera, o hardware não é analisado novamente durante todo o tempo de vida da ocorrência do player. No entanto, se o tempo de execução não encontrar câmeras, ele vai analisar todas as vezes que getCamera for chamado. Isso é útil caso a câmera esteja presente, mas desativada; se o seu arquivo SWF fornecer o botão Tentar novamente que chama getCamera, o Flash Player consegue encontrar a câmera sem que o usuário precise reiniciar o arquivo SWF.

Parâmetros

name:String (default = null) — Especifica qual câmera obter, conforme determinado da matriz retornada pela propriedade names. Para a maioria dos aplicativos, obtenha a câmera padrão omitindo esse parâmetro. Para especificar um valor para este parâmetro, use a representação da posição de string do índice baseado em zero dentro do array Camera.names. Por exemplo, para especificar a terceira câmera na matriz, use Camera.getCamera("2").

Retorna
Camera — Caso o parâmetro name não seja especificado, este método retorna uma referência para a câmera padrão ou, se estiver em uso por outro aplicativo, para a primeira câmera disponível. (Se houver mais de uma câmera instalada, o usuário pode especificar a câmera padrão no painel Configurações da câmera do Flash Player.) Se não houver câmeras disponíveis nem instaladas, o método devolve null.

Eventos
status:StatusEvent — Despachado quando uma câmera relata seu status. Antes de acessar uma câmera, o Flash Player exibe uma caixa de diálogo Privacidade para que os usuários permitam ou neguem o acesso à sua câmera. Se o valor da propriedade code for "Camera.Muted", o usuário se recusou a permitir o acesso do arquivo SWF à câmera do usuário. Se o valor da propriedade code for "Camera.Unmuted", o usuário permitiu o acesso do arquivo SWF à câmera do usuário.

Elementos da API relacionados


Exemplo  ( Como usar este exemplo )

No exemplo a seguir, depois que o usuário permite o acesso à câmera, a câmera anexa é usada para capturar imagens de vídeo. Informações sobre o fluxo de vídeo, tais como os quadros atuais por segundo, também são exibidas.

O método Camera.getCamera() retorna uma referência para um objeto camera, ou retorna null se não houver câmera disponível ou instalada. A instrução if verifica se a câmera foi encontrada e se o usuário permitiu acesso a ela. Se o usuário negou o acesso, a propriedade muted é definida como true.

Normalmente, quando o método attachCamera() é invocado, uma caixa de diálogo aparece e pergunta ao usuário se ele deseja permitir ou negar ao Flash Player acesso à câmera. Contudo, se o usuário negou acesso e selecionou a opção Lembrar, a caixa de diálogo não aparece e nada é exibido. Para certificar-se de que a opção que permite acessar a câmera foi definida, o campo de texto myTextField instrui o usuário a clicar no campo de texto para invocar a caixa de diálogo Configurações do Flash Player.

O método clickHandler() chama o método Security.showSettings() que exibe o painel PRIVACY da caixa de diálogo Configurações. Se o usuário permitir o acesso, o evento StatusEvent.STATUS é despachado e o valor da propriedade code do evento é definido como Camera.Unmuted. (A propriedade mute do objeto da câmera também é definida como false.)

O método statusHandler(), adicionado para escutar a alteração do status da configuração do usuário invoca o método connectCamera() se o usuário permitir acesso.. O método connectCamera() exemplifica um objeto video com largura e comprimento do fluxo capturado. Para exibir o vídeo capturado pela câmera, a referência ao fluxo de vídeo está anexada ao objeto video e ele é adicionado à lista de exibição.

Um objeto Timer também é iniciado. A cada segundo, o evento timer do objeto Timer é despachado e o método timerHandler() é invocado. O método timerHandler() é exibido e atualiza várias propriedades do objeto Camera.

Observação: Para este exemplo, a única propriedade alterada é a propriedade currentFPS.

package {
    import flash.display.Sprite;
    import flash.media.Camera;
    import flash.media.Video;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
    import flash.utils.Timer;
    import flash.events.TimerEvent;
    import flash.events.StatusEvent;
    import flash.events.MouseEvent;
    import flash.system.SecurityPanel;
    import flash.system.Security;

    public class Camera_getCameraExample extends Sprite {
        private var myTextField:TextField;
        private var cam:Camera;
        private var t:Timer = new Timer(1000);
        
        public function Camera_getCameraExample() {
            myTextField = new TextField();
            myTextField.x = 10;
            myTextField.y = 10;
            myTextField.background = true;
            myTextField.selectable = false;
            myTextField.autoSize = TextFieldAutoSize.LEFT;    
        
            if (Camera.isSupported)
            {
                cam = Camera.getCamera();
                
                 if (!cam) {
                    myTextField.text = "No camera is installed.";
                    
                } else if (cam.muted) {
                    myTextField.text = "To enable the use of the camera,\n"
                                     + "please click on this text field.\n" 
                                     + "When the Flash Player Settings dialog appears,\n"
                                     + "make sure to select the Allow radio button\n" 
                                     + "to grant access to your camera.";
    
                    myTextField.addEventListener(MouseEvent.CLICK, clickHandler);
    
                }else {
                    myTextField.text = "Connecting";
                    connectCamera(); 
                }
       
                addChild(myTextField);
    
                t.addEventListener(TimerEvent.TIMER, timerHandler);
            }else {
                myTextField.text = "The Camera class is not supported on this device.";
            }
        }

        private function clickHandler(e:MouseEvent):void {
            Security.showSettings(SecurityPanel.PRIVACY);

            cam.addEventListener(StatusEvent.STATUS, statusHandler);

            myTextField.removeEventListener(MouseEvent.CLICK, clickHandler);
        }

        private function statusHandler(event:StatusEvent):void {

            if (event.code == "Camera.Unmuted") {
                connectCamera(); 
                cam.removeEventListener(StatusEvent.STATUS, statusHandler);
            }
        }

        private function connectCamera():void {
                var vid:Video = new Video(cam.width, cam.height);
                vid.x = 10;
                vid.y = 10;
                vid.attachCamera(cam);
                addChild(vid);    

                t.start();
        }

        private function timerHandler(event:TimerEvent):void {
            myTextField.y = cam.height + 20;
            myTextField.text = "";
            myTextField.appendText("bandwidth: " + cam.bandwidth + "\n");
            myTextField.appendText("currentFPS: " + Math.round(cam.currentFPS) + "\n");
            myTextField.appendText("fps: " + cam.fps + "\n");
            myTextField.appendText("keyFrameInterval: " + cam.keyFrameInterval + "\n");
        }
    }
}

    requestPermission

()método 
public function requestPermission():void

Versão da linguagem: ActionScript 3.0
Versões de runtime: AIR 24.0

Solicita a permissão da câmera para o aplicativo.


Eventos
PermissionStatus:PermissionEvent — despachado quando a permissão solicitada é concedida/negada pelo usuário.

setKeyFrameInterval

()método 
public function setKeyFrameInterval(keyFrameInterval:int):void

Versão da linguagem: ActionScript 3.0
Versões de runtime: AIR 1.0, Flash Player 9

Especifica quais quadros de vídeo são transmitidos integralmente (chamados de quadros-chaves) em vez de serem interpolados pelo algoritmo de compactação de vídeo. Este método é aplicável apenas se você estiver transmitindo vídeo com o Flash Media Server.

O algoritmo de compressão do Flash Video compacta o vídeo transmitindo apenas o que foi alterado desde o último quadro do vídeo; essas partes são consideradas quadros interpolados. Os quadros de um vídeo podem ser interpolados de acordo com o conteúdo do quadro anterior. Um quadro-chave, no entanto, é um quadro de vídeo que é completo; não é interpolado dos quadros anteriores.

Para determinar como definir um valor para o parâmetro keyFrameInterval, considere a utilização da largura de banda e a acessibilidade da reprodução de vídeo. Por exemplo, especificar um valor maior para keyFrameInterval (enviando quadros-chaves com menos frequência) reduz a utilização da largura de banda. No entanto, isso pode aumentar o tempo necessário para posicionar o indicador de reprodução em um ponto particular no vídeo; talvez seja necessário interpolar quadros de vídeo anteriores antes que o vídeo possa ser retomado.

Por outro lado, especificar um valor menor para keyFrameInterval (enviando os quadros-chaves com mais frequência) aumenta a utilização da largura de banda porque todos os quadros de vídeo são transmitidos com mais frequência, mas pode diminuir o tempo necessário para buscar um quadro em particular em um vídeo gravado.

Parâmetros

keyFrameInterval:int — Um valor que especifica quais quadros de vídeo são transmitidos integralmente (como quadros-chave) em vez de serem interpolados pelo algoritmo de compactação de vídeo. O valor 1 significa que todos os quadros são quadros-chaves, o valor 3 significa que todos os quadros na terceira posição são quadros-chaves e assim por diante. Os valores aceitáveis são de 1 a 48.


Lança
PermissionError — O aplicativo não tem permissão para usar a câmera.

Elementos da API relacionados

setLoopback

()método 
public function setLoopback(compress:Boolean = false):void

Versão da linguagem: ActionScript 3.0
Versões de runtime: AIR 1.0, Flash Player 9

Especifica se um fluxo de vídeo compactado será ou não usado para uma exibição local da câmera. Esse método é aplicável apenas se você estiver transmitindo o vídeo com o Flash Media Server; a definição de compress como true permite ver com mais precisão como o vídeo vai aparecer para os usuários quando o visualizam em tempo real.

Embora um fluxo compactado seja útil para fins de testes, como pré-visualização das configurações da qualidade de vídeo, ele tem um custo de processamento significativo, pois a visualização local não é simplesmente compactada; é compactada, editada para transmissão (como seria em uma conexão ao vivo), e depois descompactada para visualização local.

Para definir a quantidade de compressão usada quando você define compress como true, use Camera.setQuality().

Parâmetros

compress:Boolean (default = false) — Especifica se você deve usar um fluxo de vídeo compactado (true) ou um fluxo não compactado (false) para visualização local do que a câmera está recebendo.


Lança
PermissionError — O aplicativo não tem permissão para usar a câmera.

Elementos da API relacionados

setMode

()método 
public function setMode(width:int, height:int, fps:Number, favorArea:Boolean = true):void

Versão da linguagem: ActionScript 3.0
Versões de runtime: AIR 1.0, Flash Player 9

Define o modo de captura da câmera como o modo nativo que melhor atende aos requisitos especificados. Se a câmera não tiver um modo nativo que corresponda a todos os parâmetros que você passar, o tempo de execução selecionará o modo de captura que melhor sintetiza o modo solicitado. Essa manipulação pode envolver cortar a imagem e soltar quadros.

Por padrão, o modo de execução solta os quadros conforme necessário para manter o tamanho da imagem. Para minimizar o número de quadros liberados, mesmo que isso signifique reduzir o tamanho da imagem, passe false para o parâmetro favorArea.

Ao escolher um modo nativo, o tempo de execução tenta manter a proporção solicitada sempre que possível. Por exemplo, se você emitir o comando myCam.setMode(400, 400, 30) e os valores máximos de largura e altura disponíveis na câmera forem 320 e 288, o tempo de execução definirá a largura e a altura como 288. Definindo essas propriedades com o mesmo valor, o tempo de execução mantém a proporção 1:1 que você solicitou.

Para determinar os valores atribuídos a essas propriedades depois que o tempo e execução seleciona o modo que mais se aproxima dos valores solicitados, use as propriedades width, height e fps.

Se estiver usando o Flash Media Server, você também pode capturar quadros únicos ou criar uma fotografia de lapso de tempo. Para obter mais informações, consulte NetStream.attachCamera().

Parâmetros

width:int — A largura da captura solicitada, em pixels. O valor padrão é 160.
 
height:int — A altura da captura solicitada, em pixels. O valor padrão é 120.
 
fps:Number — A taxa solicitada na qual a câmera deve capturar dados, em quadros por segundo. O valor padrão é 15.
 
favorArea:Boolean (default = true) — Especifica se você deve manipular a largura, a altura e a taxa de quadros caso a câmera não tenha um modo nativo que atende às exigências especificadas. O valor padrão é true, que significa que é preferível manter o tamanho da captura; a utilização deste parâmetro seleciona o modo que mais se aproxima dos valores width e height, mesmo que fazer isso afete adversamente o desempenho reduzindo a taxa de quadros. Para maximizar a taxa de quadros, afetando a altura e a largura da câmera, passe false para o parâmetro favorArea.


Lança
PermissionError — O aplicativo não tem permissão para usar a câmera.

Elementos da API relacionados


Exemplo  ( Como usar este exemplo )

No exemplo a seguir, quando um usuário clica em Palco, o vídeo é redimensionado e a taxa de captura de quadros por segundo é definida para um novo valor.

O Palco está definido, por isso não é dimensionado. O método Camera.getCamera() retorna uma referência para um objeto camera, ou retorna null se não houver câmera disponível ou instalada. Se camera existe, o método connectCamera() é chamado. O método connectCamera() exemplifica um objeto video. Para exibir o vídeo capturado pela câmera, a referência ao fluxo de vídeo está anexada ao objeto video e ele é adicionado à lista de exibição. Um ouvinte de evento também é definido para um evento MouseEvent.CLICK. Depois que o usuário clica em Palco, o método clickHandler() é invocado. O método verifica a largura do vídeo capturado e define a largura, altura e taxa de solicitação de quadros por segundo do modo de captura da câmera. Para que essas configurações tenham efeito, o objeto video deve ser removido e re-criado. A largura e a altura do vídeo devem ser definidas na largura e altura do objeto camera.

package {
    import flash.display.Sprite;
    import flash.media.Camera;
    import flash.media.Video;
    import flash.events.MouseEvent;
    import flash.display.StageScaleMode;

    public class Camera_setModeExample extends Sprite {
        private var cam:Camera;
        private var vid:Video;

        public function Camera_setModeExample() {
            stage.scaleMode = StageScaleMode.NO_SCALE;

            cam = Camera.getCamera();
            
            if (!cam) {
                trace("No camera is installed.");
            }else {
                connectCamera();
            }
        }

        private function connectCamera():void {
            vid = new Video();
            vid.width = cam.width;
            vid.height = cam.height; 
            vid.attachCamera(cam);
            addChild(vid);    

            stage.addEventListener(MouseEvent.CLICK, clickHandler);
        }
    
        private function clickHandler(e:MouseEvent):void {

            switch (cam.width) {
                case 160:
                cam.setMode(320, 240, 10); 
                break;
                case 320:
                cam.setMode(640, 480, 5); 
                break;
                default:
                cam.setMode(160, 120, 15); 
                break;
            } 

            removeChild(vid);           
            connectCamera();
        }
    }
}

setMotionLevel

()método 
public function setMotionLevel(motionLevel:int, timeout:int = 2000):void

Versão da linguagem: ActionScript 3.0
Versões de runtime: AIR 1.0, Flash Player 9

Especifica quanto movimento é necessário para despachar o evento activity. Como opção, define o número de milissegundos que devem transcorrer sem atividade até que o tempo de execução considere que o movimento foi interrompido e despache o evento.

Observação: o vídeo pode ser exibido independentemente do valor do parâmetro motionLevel. Esse parâmetro determina apenas quando e em que circunstâncias o evento é despachado – e não se o vídeo está sendo capturado ou exibido.

Para impedir que a câmera detecte qualquer tipo de movimento, passe o valor 100 para o parâmetro motionLevel; o evento activity nunca é despachado. (Provavelmente você usaria este valor apenas para fins de testes – por exemplo, para desativar temporariamente quaisquer manipuladores que normalmente seriam acionados quando o evento for despachado.)

Para determinar a quantidade de movimento que a câmera está detectando no momento, use a propriedade activityLevel. Os valores de sensibilidade de movimento correspondem diretamente aos valores de atividade. A completa falta de movimento é um valor de atividade 0. O movimento constante é um valor de atividade 100. Seu valor da atividade é menor do que o valor de sensibilidade de movimento quando você não estiver se movendo; quando estiver, os valores de atividades frequentemente ultrapassam o valor de sensibilidade de movimento.

Esse método é semelhante, em objetivo, ao método Microphone.setSilenceLevel(); os dois são usados para especificar quando o evento activity deve ser despachado. No entanto, esses métodos têm um impacto significativamente diferente nos fluxos de publicação:

  • Microphone.setSilenceLevel() foi projetado para otimizar a largura de banda. Quando um fluxo de áudio é considerado silencioso, não são enviados dados de áudio. Em vez disso, é enviada uma única mensagem, indicando que o silêncio iniciou.
  • Camera.setMotionLevel() foi projetado para detectar movimento e não afeta a utilização da largura de banda. Mesmo que um fluxo de vídeo não detecte movimento, o vídeo ainda é enviado.

Parâmetros

motionLevel:int — Especifica a quantidade de movimento necessária para despachar o evento activity. A faixa de valores aceitável varia de 0 a 100. O valor padrão é 50.
 
timeout:int (default = 2000) — Especifica quantos milissegundos devem transcorrer sem atividades até que o tempo de execução considere que a atividade foi interrompida e despache o evento activity. O valor padrão é de 2000 milissegundos (2 segundos).


Lança
PermissionError — O aplicativo não tem permissão para usar a câmera.

Elementos da API relacionados


Exemplo  ( Como usar este exemplo )

No exemplo a seguir, a câmera do usuário é usada como monitor ou como câmera de vigilância. A câmera detecta movimento e o campo de texto mostra o nível de atividade. (O exemplo pode ser ampliado para o som de um alarme ou enviar uma mensagem para outros aplicativos através de um serviço da web.)

O método Camera.getCamera() retorna uma referência para um objeto camera, ou retorna null se não houver câmera disponível ou instalada. A instrução If verifica se a câmera está disponível e invoca o método connectCamera() quando estiver disponível. O método connectCamera() exemplifica um objeto video com largura e comprimento do fluxo capturado. Para exibir o vídeo capturado pela câmera, a referência ao fluxo de vídeo está anexada ao objeto video e ele é adicionado à lista de exibição. (Normalmente, quando o método attachCamera() é invocado, uma caixa de diálogo aparece e pergunta ao usuário se ele deseja permitir ou negar ao Flash Player acesso à câmera. Contudo, se o usuário negou acesso e selecionou a opção Lembrar, a caixa de diálogo não aparece e nada é exibido. Para certificar-se de que o usuário possui permissão de acesso à câmera, use o método system.Security.showSettings() para invocar a caixa de diálogo Configurações do Flash Player)

O método setMotionLevel() define o nível de atividade (quantidade de movimento), antes do evento activity ser invocado para cinco, como movimento mínimo. O tempo entre a câmera parar de detectar movimento e quando o evento activity é invocado, está configurado para 1 segundo (1000 milissegundos). Após um segundo sem atividade ou o nível de atividade atingir cinco, o evento ActivityEvent.ACTIVITY é despachado e o método activityHandler() é invocado. Se o evento foi disparado pelo nível de atividade, a propriedade activating está definida como true e o objeto Timer é iniciado. A cada segundo, o evento timer do objeto Timer é despachado e o método timerHandler() é invocado, exibindo o nível atual de atividade. (Embora um nível de cinco ou mais dispara o timer, o número atual de atividade exibido pode ser um número inferior.)

package {
    import flash.display.Sprite;
    import flash.media.Camera;
    import flash.media.Video;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
    import flash.utils.Timer;
    import flash.events.TimerEvent;
    import flash.events.ActivityEvent;

    public class Camera_setMotionLevelExample extends Sprite {
        private var myTextField:TextField;
        private var cam:Camera;
        private var t:Timer = new Timer(1000);

        public function Camera_setMotionLevelExample() {
            myTextField = new TextField();
            myTextField.background = true;
            myTextField.selectable = false;
            myTextField.autoSize = TextFieldAutoSize.LEFT;    
        
            cam = Camera.getCamera();
            
            if (!cam) {
                myTextField.text = "No camera is installed.";

            }else {
                myTextField.text = "Waiting to connect.";
                connectCamera(); 
            }

            addChild(myTextField);

            t.addEventListener(TimerEvent.TIMER, timerHandler);
        }

        private function connectCamera():void {
                var vid:Video = new Video(cam.width, cam.height);
                vid.x = 10;
                vid.y = 10;
                vid.attachCamera(cam);
                addChild(vid);    

                cam.setMotionLevel(5, 1000);
                cam.addEventListener(ActivityEvent.ACTIVITY, activityHandler);
        }

        private function activityHandler(e:ActivityEvent):void {
            if (e.activating == true) {
                t.start();    
            } else {
                myTextField.text = "Everything is quiet.";
                t.stop();
            }    
        }

        private function timerHandler(event:TimerEvent):void {
             myTextField.x = 10;
             myTextField.y = cam.height + 20;
             myTextField.text = "There is some activity. Level: " + cam.activityLevel;
        }
    }
}

setQuality

()método 
public function setQuality(bandwidth:int, quality:int):void

Versão da linguagem: ActionScript 3.0
Versões de runtime: AIR 1.0, Flash Player 9

Define a quantidade máxima de largura de banda por segundo ou a qualidade de imagem necessária do feed de vídeo de saída atual. Este método é geralmente aplicável apenas se você estiver transmitindo vídeo com o Flash Media Server.

Use esse método para especificar qual elemento do feed do vídeo de saída é mais importante para a sua aplicação – utilização de largura de banda ou qualidade de imagem.

  • Para indicar qual utilização da largura de banda tem precedência, transmita um valor para bandwidth e 0 para quality. O tempo de execução transmite vídeo com a qualidade mais alta possível na largura de banda especificada. Se necessário, o tempo de execução reduz a qualidade da imagem para não ultrapassar a largura de banda especificada. Em geral, à medida que aumenta o movimento, diminui a qualidade.
  • Para indicar qual qualidade tem precedência, transmita 0 para bandwidth e um valor numérico para quality. O tempo de execução usa tanta largura de banda quanto necessário para manter a qualidade especificada. Se necessário, o tempo de execução reduz a taxa de quadros para manter a qualidade da imagem. Em geral, à medida que aumenta o movimento, aumenta também a largura de banda.
  • Para especificar que a largura de banda e a qualidade são igualmente importantes, transmita valores numéricos para os dois parâmetros. O tempo de execução transmite vídeo que atinge a qualidade especificada e que não excede a largura de banda especificada. Se necessário, o tempo de execução reduz a taxa de quadros para manter a qualidade da imagem sem exceder a largura de banda especificada.

Parâmetros

bandwidth:int — Especifica a quantidade máxima de largura de banda que o feed de vídeo de saída atual pode usar, em bytes por segundo. Para especificar que o vídeo pode usar tanta largura de banda quanto for necessário para manter o valor de quality, passe 0 para bandwidth. O valor padrão é 16384.
 
quality:int — Um inteiro que especifica o nível necessário de qualidade da imagem, determinado pela intensidade de compactação que está sendo aplicada a cada quadro de vídeo. Os valores aceitáveis variam de 1 (qualidade mais baixa, compressão máxima) a 100 (qualidade mais alta, sem compressão). Para especificar que a qualidade da imagem pode variar conforme necessário, a fim de que não ultrapasse a largura de banda, transmita 0 para quality.


Lança
PermissionError — O aplicativo não tem permissão para usar a câmera.

Elementos da API relacionados

Detalhe do evento

activity

Evento
Tipo do objeto de evento: flash.events.ActivityEvent
propriedade ActivityEvent.type = flash.events.ActivityEvent.ACTIVITY

Versão da linguagem: ActionScript 3.0
Versões de runtime: AIR 1.0, Flash Player 9

Despachado quando uma câmera inicia ou encerra uma sessão. Chame Camera.setMotionLevel() para especificar a quantidade de movimento necessária para disparar um evento activity com um valor activating de true, ou a hora sem a atividade que deve transcorrer antes do disparo de um evento activity com um valor para activating de false.

A constante ActivityEvent.ACTIVITY define o valor da propriedade type de um objeto de evento activity.

Esse evento tem as seguintes propriedades:

PropriedadeValor
activatingtrue se o dispositivo for @activating ou false se for @deactivating.
bubblesfalse
cancelablefalse; não há comportamento padrão a ser cancelado.
currentTargetO objeto que está processando ativamente o objeto Event com um ouvinte de evento.
targetO objeto que inicia ou conclui uma sessão, como um objeto Camera ou Microphone.
    

permissionStatus

Evento  
Tipo do objeto de evento: flash.events.PermissionEvent
propriedade PermissionEvent.type = flash.events.PermissionEvent.PERMISSION_STATUS

Versão da linguagem: ActionScript 3.0
Versões de runtime: AIR 24.0

Será despachado quando o aplicativo solicitar permissão para usar a câmera no dispositivo. Verifique o valor da propriedade status para determinar se a permissão for concedida ou recusada

Elementos da API relacionados

status

Evento  
Tipo do objeto de evento: flash.events.StatusEvent
propriedade StatusEvent.type = flash.events.StatusEvent.STATUS

Versão da linguagem: ActionScript 3.0
Versões de runtime: Flash Player 9, AIR (unsupported)

Despachado quando uma câmera relata seu status. Antes de acessar uma câmera, o tempo de execução exibe uma caixa de diálogo Privacidade para que os usuários permitam ou neguem o acesso à sua câmera. Se o valor da propriedade code for "Camera.Muted", o usuário se recusou a permitir o acesso do arquivo SWF à câmera do usuário. Se o valor da propriedade code for "Camera.Unmuted", o usuário permitiu o acesso do arquivo SWF à câmera do usuário.

Nota: Este evento não é despachado na plataforma do AIR. Ele é utilizado somente no Flash Player.

Define o valor da propriedade type de um objeto de evento status.

Esse evento tem as seguintes propriedades:

PropriedadeValor
bubblesfalse
cancelablefalse; não há comportamento padrão a ser cancelado.
codeUma descrição do status do objeto.
currentTargetO objeto que está processando ativamente o objeto Event com um ouvinte de evento.
nívelA categoria da mensagem, como "status", "warning" ou "error".
targetO objeto que está reportando o status.

Elementos da API relacionados

videoFrame

Evento  
Tipo do objeto de evento: flash.events.Event
propriedade Event.type = flash.events.Event.VIDEO_FRAME

Versão da linguagem: ActionScript 3.0
Versões de runtime: Flash Player 11.4, AIR 3.4

Enviado depois que um novo quadro de câmera é processado pelo runtime e disponibilizado para cópia.

A constante Event.VIDEO_FRAME define o valor da propriedade type do objeto de evento videoFrame.

Esse evento tem as seguintes propriedades:

PropriedadeValor
bubblesfalse
cancelablefalse; não há comportamento padrão a ser cancelado.
targetO objeto Camera que enviou esse evento.

Elementos da API relacionados

CameraExample.as

O exemplo a seguir mostra a imagem de uma câmera depois de reconhecer a advertência de segurança. O Palco foi configurado de forma que não possa ser escalonado e esteja alinhado no canto superior esquerdo da janela do player. O evento activity foi despachado no início e no final (se houver) da sessão e foi capturado pelo método activityHandler(), que imprime as informações sobre o evento.

Observação: é necessário acoplar uma câmera ao seu computador para que este exemplo funcione corretamente.

package {
    import flash.display.Sprite;
    import flash.display.StageAlign;
    import flash.display.StageScaleMode;
    import flash.events.*;
    import flash.media.Camera;
    import flash.media.Video;

    public class CameraExample extends Sprite {
        private var video:Video;
        
        public function CameraExample() {
            stage.scaleMode = StageScaleMode.NO_SCALE;
            stage.align = StageAlign.TOP_LEFT;
            
            var camera:Camera = Camera.getCamera();
            
            if (camera != null) {
                camera.addEventListener(ActivityEvent.ACTIVITY, activityHandler);
                video = new Video(camera.width * 2, camera.height * 2);
                video.attachCamera(camera);
                addChild(video);
            } else {
                trace("You need a camera.");
            }
        }
        
        private function activityHandler(event:ActivityEvent):void {
            trace("activityHandler: " + event);
        }
    }
}




[ X ]Por que inglês?
O conteúdo na Referência do ActionScript 3.0 aparece em inglês

Nem todas as partes da Referência do ActionScript 3.0 estão traduzidas em todos os idiomas. Quando um elemento de um idioma não está traduzido, ele é exibido em inglês. Por exemplo, a classe ga.controls.HelpBox não está traduzida em nenhum idioma. Por isso, na versão da referência em português do Brasil, a classe ga.controls.HelpBox é exibida em inglês.