適用於 Adobe® Flash® Platform 的 ActionScript® 3.0 參考
首頁  |  隱藏套件和類別清單 |  套件  |  類別  |  新增內容  |  索引  |  附錄  |  為什麼顯示英文?
篩選: AIR 30.0 和更早版本, Flash Player 30.0 和更早版本, Flash Lite 4
Flex 4.6 和更早版本, Flash Pro CS6 和更早版本
隱藏篩選
flash.media 

Camera  - AS3

套件x

最上層
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

語言元素

全域常數
全域函數
運算子
陳述式、關鍵字和指令
特殊類型

附錄

新增內容
編譯器錯誤
編譯器警告
執行階段錯誤
移轉至 ActionScript 3
支援的字元集
僅限 MXML 標籤
移動 XML 元素
Timed Text 標籤
不建議元素清單
AccessibilityImplementation 常數
如何使用 ActionScript 範例
法律聲明
套件flash.media
類別public final class Camera
繼承Camera Inheritance EventDispatcher Inheritance Object

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9

使用 Camera 類別可以從用戶端系統或裝置的攝影機擷取視訊。使用 Video 類別可於本機監視視訊。 使用 NetConnection 和 NetStream 類別可將視訊傳輸到 Flash Media Server。 Flash Media Server 可以傳送視訊串流到其它伺服器,並將它廣播給其它執行 Flash Player 或 AIR 的用戶端。

Camera 實體會以橫向外觀比例來擷取視訊。在可以變更螢幕方向的裝置上 (例如行動電話),附加至攝影機的 Video 物件只會在橫向外觀方向中顯示直立的視訊。因此,行動應用程式顯示視訊時應使用橫向方向,且不應自動旋轉。

iOS 上會鏡像處理前方攝影機的視訊。Android 則不會。

在具有自動對焦攝影機的行動裝置上,會自動啟用自動對焦。如果相機不支援連續自動對焦 (許多行動裝置配備的相機不支援),便會在將 Camera 物件附加至視訊串流,以及在呼叫 setMode() 方法時將相機對焦。在桌上型電腦上,自動對焦的行為取決於攝影機驅動程式和相關設定。

在 Android 與 iOS 的 AIR 應用程式中,當 AIR 應用程式不是作用中的前景應用程式時,攝影機不會捕捉視訊。此外,當應用程式在背景時,串流連線可能會中斷。在 iOS 上,當應用程式使用 GPU 顯示模式時,無法顯示攝影機視訊。但攝影機視訊仍然可以串流至伺服器。

AIR 描述檔支援:AIR for TV 裝置不支援此功能。如需有關跨多個描述檔之 API 支援的詳細資訊,請參閱 AIR 描述檔支援。請注意,針對 AIR for TV 裝置,Camera.isSupportedtrue 但是 Camera.getCamera() 永遠傳回 null。在行動瀏覽器中不支援攝影機存取。

如需有關擷取音效的詳細資訊,請參閱 Microphone 類別。

重要:執行階段會顯示「私用」對話方塊,讓使用者選擇要允許或拒絕對該攝影機進行存取。請確定您的應用程式視窗大小至少為 215 x 138 像素,這是顯示對話方塊所需的最小尺寸。

若要建立或參照 Camera 物件,請使用 getCamera() 方法。

檢視範例

詳細資訊

相關 API 元素



公用屬性
 屬性定義自
  activityLevel : Number
[唯讀] 攝影機偵測的移動量。
Camera
  bandwidth : int
[唯讀] 目前播出視訊內容可用的最高頻寬量,以位元組為單位。
Camera
 Inheritedconstructor : Object
類別物件的參照或是特定物件實體的建構函數。
Object
  currentFPS : Number
[唯讀] 攝影機捕捉資料的速率,以每秒影格數為單位。
Camera
  fps : Number
[唯讀] 攝影機可擷取資料的最高速率,以每秒影格數為單位。
Camera
  height : int
[唯讀] 目前捕捉的高度,以像素為單位。
Camera
  index : int
[唯讀] 在列出所有可用攝影機的 Camera.names 陣列中指定攝影機位置的索引 (從零開始)。
Camera
  isSupported : Boolean
[靜態] [唯讀] 如果目前的平台支援 Camera 類別,則 isSupported 屬性會設為 true,否則會設為 false。
Camera
  keyFrameInterval : int
[唯讀] 完整傳輸的視訊影格 (稱為「關鍵影格」) 數,而非視訊壓縮演算法所製作的漸變影格。
Camera
  loopback : Boolean
[唯讀] 指出攝影機所擷取用於本機檢視的視訊會如同使用 Flash Media Server 進行即時傳輸一樣進行壓縮並解壓縮 (true),或是不進行壓縮 (false)。
Camera
  motionLevel : int
[唯讀] 叫用 activity 事件所需要的移動量。
Camera
  motionTimeout : int
[唯讀] 從攝影機停止偵測移動到叫用 activity 事件之間的毫秒數。
Camera
  muted : Boolean
[唯讀] Boolean 值,指出使用者已在 Flash Player「私用」對話方塊中拒絕 (true) 或允許 (false) 存取攝影機。
Camera
  name : String
[唯讀] 目前攝影機的名稱,它是由攝影機硬體所傳回的。
Camera
  names : Array
[靜態] [唯讀] 所有可用攝影機名稱的字串陣列。
Camera
      permissionStatus : String
[靜態] [唯讀] 判斷應用程式是否已獲得使用攝影機的權限。
Camera
      position : String
[唯讀] 指定裝置上裝設攝影機的一側。
Camera
  quality : int
[唯讀] 圖片品質的必要水準,由每個視訊影格所套用的壓縮量決定。
Camera
  width : int
[唯讀] 目前捕捉的寬度,以像素為單位。
Camera
公用方法
 方法定義自
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
會在 EventDispatcher 物件註冊事件偵聽程式,以便讓偵聽程式收到事件的通知。
EventDispatcher
  
從像素資料的矩形區域中將位元組陣列填色,並且將每個像素的無正負號整數 (32 位元未相乘的像素值) 寫入位元組陣列中。
Camera
  
copyToVector(rect:Rectangle, destination:Vector.<uint>):void
從像素資料的矩形區域中將向量填色。
Camera
 Inherited
會將事件傳送到事件流程。
EventDispatcher
  
將最後一個影格複製到點陣圖。
Camera
  
getCamera(name:String = null):Camera
[靜態] 傳回捕捉視訊的 Camera 物件的參照。
Camera
 Inherited
會檢查 EventDispatcher 物件是否有對特定的事件類型註冊偵聽程式。
EventDispatcher
 Inherited
指出物件是否有已定義的指定屬性。
Object
 Inherited
指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。
Object
 Inherited
指出指定的屬性是否存在,以及是否可列舉。
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
會從 EventDispatcher 物件移除偵聽程式。
EventDispatcher
  
要求應用程式的攝影機權限。
Camera
  
setKeyFrameInterval(keyFrameInterval:int):void
指定完整傳輸的視訊影格 (稱為「關鍵影格」),而非視訊壓縮演算法所製作的漸變影格。
Camera
  
setLoopback(compress:Boolean = false):void
會指定是否要針對攝影機的本機檢視使用壓縮的視訊串流。
Camera
  
setMode(width:int, height:int, fps:Number, favorArea:Boolean = true):void
設定攝影機捕捉模式為最能符合特定要求的原生模式。
Camera
  
setMotionLevel(motionLevel:int, timeout:int = 2000):void
指定傳送 activity 事件所需的移動量。
Camera
 Inherited
為迴圈作業設定動態屬性的可用性。
Object
  
setQuality(bandwidth:int, quality:int):void
設定每秒最大頻寬量,或目前播出視訊內容所要求的圖片品質。
Camera
 Inherited
傳回代表此物件的字串,根據地區特定慣例進行格式化。
Object
 Inherited
會傳回指定之物件的字串形式。
Object
 Inherited
會傳回指定之物件的基本值。
Object
 Inherited
檢查此 EventDispatcher 物件是否已註冊事件偵聽程式,或者此物件的任何祖系已為特定事件類型註冊事件偵聽程式。
EventDispatcher
事件
 事件 摘要 定義自
 Inherited[廣播事件] 當 Flash Player 或 AIR 應用程式取得作業系統焦點並成為作用中時傳送。EventDispatcher
  於攝影機開始或結束工作階段時傳送。Camera
 Inherited[廣播事件] 當 Flash Player 或 AIR 應用程式失去作業系統焦點並成為非作用中時傳送。EventDispatcher
  當應用程式要求權限以使用裝置上的攝影機時傳送。Camera
  會在攝影機回報其狀態時傳送。Camera
  在新相機影格經過執行階段處理且可供複製之後傳送。Camera
屬性詳細資訊

activityLevel

屬性
activityLevel:Number  [唯讀]

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9

攝影機偵測的移動量。 值範圍是從 0 (未偵測到任何移動) 到 100 (偵測到大量的移動)。 這個屬性值可幫助您判斷是否需要將設定傳遞給 setMotionLevel() 方法。

如果攝影機可以使用,卻因為未呼叫 Video.attachCamera() 方法而尚未使用,這個屬性就會設定為 -1。

如果您只要串流未壓縮的本機視訊,則只有在已經將函數指定到此事件處理常式時,才需要設定這個屬性; 否則就不必定義它。



實作
    public function get activityLevel():Number

擲回值
PermissionError — 應用程式沒有使用攝影機的權限。

相關 API 元素

bandwidth

屬性 
bandwidth:int  [唯讀]

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9

目前播出視訊內容可用的最高頻寬量,以位元組為單位。 值為 0 表示內容可視需要儘量使用頻寬,以維持所要求的影格品質。

若要設定這個屬性,請使用 setQuality() 方法。



實作
    public function get bandwidth():int

擲回值
PermissionError — 應用程式沒有使用攝影機的權限。

相關 API 元素

currentFPS

屬性 
currentFPS:Number  [唯讀]

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9

攝影機捕捉資料的速率,以每秒影格數為單位。 您雖然無法設定這個屬性,但可使用 setMode() 方法來設定相關的屬性— fps —它會指定您期望攝影機捕捉資料的最高影格速率。



實作
    public function get currentFPS():Number

擲回值
PermissionError — 應用程式沒有使用攝影機的權限。

相關 API 元素

fps

屬性 
fps:Number  [唯讀]

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9

攝影機可擷取資料的最高速率,以每秒影格數為單位。 可能的最高速率視攝影機功能而定,所以這個影格速率未必能夠達到。

  • 若要為這個屬性設定所需的值,請使用 setMode() 方法。
  • 若要判斷攝影機目前捕捉資料的速率,請使用 currentFPS 屬性。



實作
    public function get fps():Number

擲回值
PermissionError — 應用程式沒有使用攝影機的權限。

相關 API 元素

height

屬性 
height:int  [唯讀]

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9

目前捕捉的高度,以像素為單位。 若要設定這個屬性的值,請使用 setMode() 方法。



實作
    public function get height():int

擲回值
PermissionError — 應用程式沒有使用攝影機的權限。

相關 API 元素

index

屬性 
index:int  [唯讀]

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9

在列出所有可用攝影機的 Camera.names 陣列中指定攝影機位置的索引 (從零開始)。



實作
    public function get index():int

擲回值
PermissionError — 應用程式沒有使用攝影機的權限。

相關 API 元素

isSupported

屬性 
isSupported:Boolean  [唯讀]

語言版本: ActionScript 3.0
執行階段版本: Flash Player 10.1, AIR 2

如果目前的平台支援 Camera 類別,則 isSupported 屬性會設為 true,否則會設為 false



實作
    public static function get isSupported():Boolean

keyFrameInterval

屬性 
keyFrameInterval:int  [唯讀]

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9

完整傳輸的視訊影格 (稱為「關鍵影格」) 數,而非視訊壓縮演算法所製作的漸變影格。 預設值為 15,表示每個第 15 影格是關鍵影格。 值為 1 表示每個影格都是關鍵影格。 允許的值是 1 到 300。



實作
    public function get keyFrameInterval():int

擲回值
PermissionError — 應用程式沒有使用攝影機的權限。

相關 API 元素

loopback

屬性 
loopback:Boolean  [唯讀]

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9

指出攝影機所擷取用於本機檢視的視訊會如同使用 Flash Media Server 進行即時傳輸一樣進行壓縮並解壓縮 (true),或是不進行壓縮 (false)。 預設值是 false

雖然壓縮的串流在進行測試 (例如預覽視訊品質設定) 時很有用,不過其處理成本相當高。 本機檢視會經過壓縮、編輯 (像是要透過即時連線進行傳輸一樣),然後解壓縮以供本機檢視。

若要設定這個值,請使用 Camera.setLoopback()。 若要在此屬性為 true 時,設定所使用的壓縮量,請使用 Camera.setQuality()



實作
    public function get loopback():Boolean

擲回值
PermissionError — 應用程式沒有使用攝影機的權限。

相關 API 元素

motionLevel

屬性 
motionLevel:int  [唯讀]

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9

叫用 activity 事件所需要的移動量。 可接受的範圍值介於 0 到 100 之間。 預設值為 50。

不論 motionLevel 屬性的值為何,都能顯示視訊。 如需詳細資訊,請參閱 setMotionLevel()



實作
    public function get motionLevel():int

擲回值
PermissionError — 應用程式沒有使用攝影機的權限。

相關 API 元素

motionTimeout

屬性 
motionTimeout:int  [唯讀]

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9

從攝影機停止偵測移動到叫用 activity 事件之間的毫秒數。 預設值為 2000 (2 秒)。

若要設定這個值,請使用 setMotionLevel()



實作
    public function get motionTimeout():int

擲回值
PermissionError — 應用程式沒有使用攝影機的權限。

相關 API 元素

muted

屬性 
muted:Boolean  [唯讀]

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9

Boolean 值,指出使用者已在 Flash Player「私用」對話方塊中拒絕 (true) 或允許 (false) 存取攝影機。 當此值變更時,就會傳送 status 事件。



實作
    public function get muted():Boolean

擲回值
PermissionError — 應用程式沒有使用攝影機的權限。

相關 API 元素

name

屬性 
name:String  [唯讀]

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9

目前攝影機的名稱,它是由攝影機硬體所傳回的。



實作
    public function get name():String

擲回值
PermissionError — 應用程式沒有使用攝影機的權限。

相關 API 元素

names

屬性 
names:Array  [唯讀]

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9

所有可用攝影機名稱的字串陣列。存取這個陣列不會顯示「Flash Player 私用」對話方塊。這個陣列會提供每個攝影機的索引 (從零開始),以及系統上的攝影機數目 (使用 names.length)。

呼叫 names 必須詳細檢查硬體。在大多數的情況下,您只需要使用預設的攝影機。



實作
    public static function get names():Array

擲回值
PermissionError — 應用程式沒有使用攝影機的權限。

相關 API 元素

    

permissionStatus

屬性 
permissionStatus:String  [唯讀]

語言版本: ActionScript 3.0
執行階段版本: AIR 24.0

判斷應用程式是否已獲得使用攝影機的權限。



實作
    public static function get permissionStatus():String

相關 API 元素

    

position

屬性 
position:String  [唯讀]

語言版本: ActionScript 3.0
執行階段版本: AIR 3.0

指定裝置上裝設攝影機的一側。

使用 position 屬性,可以判斷行動裝置上的攝影機是在裝置的前方或後方。下列函數會檢查每個可用攝影機,直到找出位於所需位置的攝影機。如果沒有攝影機位於所需的位置,則會傳回預設攝影機。

     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();
     
     

在行動裝置上,攝影機位置通常是 CameraPosition.FRONTCameraPosition.BACK。如果無法判斷攝影機的位置,則位置會回報為 CameraPosition.UNKNOWN在桌面平台上,位置永遠是 CameraPosition.UNKNOWN

此屬性可能使用的有效常數值是在 CameraPosition 類別中定義



實作
    public function get position():String

擲回值
PermissionError — 應用程式沒有使用攝影機的權限。

相關 API 元素

quality

屬性 
quality:int  [唯讀]

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9

圖片品質的必要水準,由每個視訊影格所套用的壓縮量決定。 從 1 (最低品質,最大壓縮) 到 100 (最高品質,未壓縮) 範圍內可接受品質的值。 預設值為 0,這表示可視需要改變圖片的品質,以避免超過可用的頻寬。

若要設定這個屬性,請使用 setQuality() 方法。



實作
    public function get quality():int

擲回值
PermissionError — 應用程式沒有使用攝影機的權限。

相關 API 元素

width

屬性 
width:int  [唯讀]

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9

目前捕捉的寬度,以像素為單位。 若要為這個屬性設定所需的值,請使用 setMode() 方法。



實作
    public function get width():int

擲回值
PermissionError — 應用程式沒有使用攝影機的權限。

相關 API 元素

方法詳細資訊

copyToByteArray

()方法
public function copyToByteArray(rect:Rectangle, destination:ByteArray):void

語言版本: ActionScript 3.0
執行階段版本: Flash Player 11.4, AIR 3.4

從像素資料的矩形區域中將位元組陣列填色

將每個像素的無正負號整數 (32 位元未相乘的像素值) 寫入位元組陣列中。陣列會調整成所需的位元組數目,以容納所有像素。

參數

rect:Rectangle — 位於目前 BitmapData 物件的矩形區域。
 
destination:ByteArray — ByteArray,代表指定之矩形中的像素。


擲回值
PermissionError — 應用程式沒有使用攝影機的權限。
 
TypeError — rect 為 null。
 
TypeError — destination 為 null

相關 API 元素

copyToVector

()方法 
public function copyToVector(rect:Rectangle, destination:Vector.<uint>):void

語言版本: ActionScript 3.0
執行階段版本: Flash Player 11.4, AIR 3.4

從像素資料的矩形區域中將向量填色。

將每個像素的無正負號整數 (32 位元未相乘的像素值) 寫入向量中。向量會調整成所需的項目數目,以容納所有像素。

參數

rect:Rectangle — 位於目前 BitmapData 物件的矩形區域。
 
destination:Vector.<uint> — Vector<uint>,代表指定之 Rectangle 中的像素。


擲回值
PermissionError — 應用程式沒有使用攝影機的權限。
 
TypeError — rect 為 null。
 
TypeError — destination 為 null

相關 API 元素

drawToBitmapData

()方法 
public function drawToBitmapData(destination:BitmapData):void

語言版本: ActionScript 3.0
執行階段版本: Flash Player 11.4, AIR 3.4

將最後一個影格複製到點陣圖。

這個方法會將最後一個影格的內容複製到 BitmapData 實體。

參數

destination:BitmapData — 要包含最後一個影格的 BitmapData 實體物件。


擲回值
ArgumentError — 如果 destination 太小,則為 kInvalidBitmapDataError

相關 API 元素

getCamera

()方法 
public static function getCamera(name:String = null):Camera

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9

傳回捕捉視訊的 Camera 物件的參照。 若要開始擷取視訊,您必須將 Camera 物件附加到 Video 物件 (請參閱 Video.attachCamera())。 若要傳輸視訊到 Flash Media Server,請呼叫 NetStream.attachCamera(),將 Camera 物件附加到 NetStream 物件。

多次呼叫 getCamera() 方法會參考到同一個攝影機驅動程式。 因此,如果您的程式碼包含 firstCam:Camera = getCamera()secondCam:Camera = getCamera() 等程式碼,則 firstCamsecondCam 都會參照相同的攝影機 (使用者的預設攝影機)。

在同時具有前向式和後向式攝影機的行動裝置上,您一次只能從一台攝影機補捉視訊。

一般而言,您不應該傳遞 name 參數的值,而只需使用 getCamera() 傳回預設攝影機的參照。 藉由「攝影機設定」面板 (將稍後在本節中討論),使用者可以指定要使用的預設攝影機。

您無法使用 ActionScript 設定使用者存取攝影機的允許或拒絕權限設定,但可以顯示「Adobe Flash Player 設定」攝影機設定對話方塊,讓使用者設定攝影機權限。當使用 attachCamera() 方法的 SWF 檔嘗試將 getCamera() 方法傳回的攝影機附加至 Video 或 NetStream 物件時,Flash Player 會顯示一個對話方塊,讓使用者選擇允許或拒絕存取攝影機。(請確定您的應用程式視窗大小至少為 215 x 138 像素;這是 Flash Player 顯示對話方塊時要求的最小尺寸)。 當使用者回應這個對話方塊時,Flash Player 就會在 status 事件中傳回表示使用者回應的資訊物件:Camera.Muted 表示使用者拒絕存取攝影機;Camera.Unmuted 則表示使用者允許存取攝影機。若要在不處理 status 事件的情況下,判斷使用者是否已經拒絕或允許存取攝影機,請使用 muted 屬性。

在 Flash Player 中,使用者也可以為特定網域指定永久的私用設定,方法是在某個 SWF 檔正在播放時按一下滑鼠右鍵 (Windows 和 Linux) 或 Control+按一下 (Macintosh)、選取「設定」、開啟「私用」對話方塊,然後選取「記憶」。如果使用者選擇「記憶」,Flash Player 將不再詢問使用者是否要允許或拒絕來自這個網域的 SWF 檔存取攝影機。

注意:如果使用者已在「Flash Player 設定」對話方塊中選取「記憶」拒絕存取,attachCamera() 方法便不會叫用可允許或拒絕存取攝影機的對話方塊。在這種情況下,您可以藉由使用 Security.showSettings(SecurityPanel.PRIVACY) 為使用者顯示「Flash Player 私用」面板,提示使用者變更允許或拒絕設定。

如果 getCamera() 傳回 null,就表示其它應用程式正在使用該攝影機,或是系統未安裝攝影機。 若要判斷是否已安裝任何攝影機,請使用 names.length 屬性。 若要顯示「Flash Player 攝影機設定」面板,以便讓使用者選擇 getCamera() 所參照的攝影機,請使用 Security.showSettings(SecurityPanel.CAMERA)

掃描硬體尋找攝影機,需要花費一段時間。當執行階段找到至少一部攝影機後,接著在整個播放程式實體中都不會再次掃描硬體。然而,如果執行階段找不到任何攝影機,它會在每次呼叫 getCamera 時進行掃描。當攝影機存在但是停用時,這種作法有很大的幫助。如果您的 SWF 檔提供了會呼叫 getCamera 的「再試一次」按鈕,Flash Player 便能在毋需使用者重新啟動 SWF 檔的狀況下,找到該部攝影機。

參數

name:String (default = null) — 會指定要取得的攝影機,如 names 屬性傳回的陣列所判斷的一樣。 對於大部分應用程式而言,您可以省略這個參數來取得預設攝影機。 若要為這個參數指定值,請使用 Camera.names 陣列中從零開始之索引位置的字串形式。 例如,若要指定陣列中的第三部攝影機,請使用 Camera.getCamera("2")

傳回值
Camera — 如果未指定 name 參數,這個方法會傳回預設攝影機的參照。如果其它應用程式正在使用它,則會傳回第一個可用攝影機的參照。(如果安裝了多部攝影機,使用者便能在「Flash Player 攝影機設定」面板上指定預設的攝影機)。如果沒有可使用的攝影機或是未安裝,則方法會傳回 null

事件
status:StatusEvent — 會在攝影機回報其狀態時傳送。 在存取攝影機之前,Flash Player 會顯示「私用」對話方塊,讓使用者選擇要允許或拒絕對該攝影機進行存取。如果 code 屬性值為 "Camera.Muted",就表示使用者已拒絕 SWF 檔存取使用者的攝影機。如果 code 屬性的值是 "Camera.Unmuted",表示使用者允許 SWF 檔存取使用者的攝影機。

相關 API 元素


範例  ( 如何使用本範例 )

在下列範例中,當使用者允許存取攝影機之後,附加的攝影機會用來擷取視訊影像。也會顯示視訊串流的相關資訊,如目前的每秒影格數。

Camera.getCamera() 方法會傳回 Camera 物件的參考,如果攝影機無法使用或未安裝則傳回 null。if 陳述式會檢查是否已偵測到攝影機,以及使用者是否允許存取攝影機。如果使用者拒絕存取,muted 屬性會設定為 true

通常在叫用 attachCamera() 方法時,會顯示對話方塊,提示使用者允許或拒絕 Flash Player 存取攝影機。不過,如果使用者拒絕存取並選取「記憶」選項,便不會顯示對話方塊,也不會顯示提示。為了確保使用者有允許存取攝影機的選項,myTextField 文字欄位會指示使用者按一下文字欄位,以叫用「Flash Player 設定」對話方塊。

clickHandler() 方法會呼叫 Security.showSettings() 方法,此方法會顯示「設定」對話方塊的「私用」面板。如果使用者允許存取,則會傳送 StatusEvent.STATUS 事件,而且事件的 code 屬性值會設定為 Camera.Unmuted (Camera 物件的 mute 屬性也會設定為 false)。

如果使用者允許存取,statusHandler() 方法 (加入以偵聽使用者設定的狀態變更) 會叫用 connectCamera() 方法。connectCamera() 方法會使用所擷取串流的寬度和高度來實體化 Video 物件。為了顯示攝影機擷取的視訊,視訊串流的參考會附加至 Video 物件,並將 Video 物件加入顯示清單中。

Timer 物件也會啟動。每秒會傳送 1 個 Timer 物件的計時器事件,而且會叫用 timerHandler() 方法。timerHandler() 方法會顯示並更新 Camera 物件的一些屬性。

注意:在這個範例中,唯一變更的屬性是 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

()方法 
public function requestPermission():void

語言版本: ActionScript 3.0
執行階段版本: AIR 24.0

要求應用程式的攝影機權限。


事件
PermissionStatus:PermissionEvent — 由使用者授與/拒絕要求的權限時傳送。

setKeyFrameInterval

()方法 
public function setKeyFrameInterval(keyFrameInterval:int):void

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9

會指定完整傳輸的視訊影格 (稱為 「關鍵影格」),而非視訊壓縮演算法所製作的漸變影格。 這個方法只適用於使用 Flash Media Server 來傳輸視訊的狀況。

Flash 視訊壓縮演算法會透過僅傳輸上一個視訊影格已變更的部分來壓縮視訊,而這些部分就會被視為漸變影格。 視訊影格可以根據上一個影格的內容進行漸變處理。 不過,關鍵影格則是完整的視訊影格,並非從先前影格漸變的影格。

若要決定如何設定 keyFrameInterval 參數的值,請同時考量使用的頻寬和視訊播放輔助功能。 例如,針對 keyFrameInterval 指定較高的值 (會以較低的頻率傳送關鍵影格),便可以減少使用的頻寬。 不過,這麼做則會增加將播放磁頭定位於該視訊之特定點所需的時間,您可能必須漸變更多先前視訊影格的漸層,才能再繼續播放視訊。

反之,如果針對 keyFrameInterval 指定較低的值 (會以較高的頻率傳送關鍵影格),則會增加使用的頻寬,因為傳輸完整視訊影格的頻率會增加,不過可減少在錄製視訊內搜尋特定視訊影格所需的時間。

參數

keyFrameInterval:int — 指定完整傳輸的視訊影格 (稱為「關鍵影格」),而非視訊壓縮演算法所製作之漸變影格的值。 值為 1 表示每個影格都是關鍵影格,值為 3 則表示每個第三影格是關鍵影格,依此類推。 允許的值從 1 到 48。


擲回值
PermissionError — 應用程式沒有使用攝影機的權限。

相關 API 元素

setLoopback

()方法 
public function setLoopback(compress:Boolean = false):void

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9

會指定是否要針對攝影機的本機檢視使用壓縮的視訊串流。 這個方法只適用於使用 Flash Media Server 來傳輸視訊的狀況。將 compress 設定為 true,可讓您更精確地查看使用者即時檢視視訊的狀況。

雖然壓縮的串流在進行測試目的 (例如預覽視訊品質設定) 時很有用,不過它也具有相當大的處理成本,因為本機檢視不僅進行壓縮而已,它會進行壓縮、編輯 (像是要透過即時連線進行傳輸一樣),然後解壓縮供本機檢視。

若要設定您在將 compress 設定為 true 時所用的壓縮量,請使用 Camera.setQuality()

參數

compress:Boolean (default = false) — 會指定要使用壓縮的視訊串流 (true) 或未壓縮的串流 (false),以便針對攝影機正在接收的視訊進行本機檢視。


擲回值
PermissionError — 應用程式沒有使用攝影機的權限。

相關 API 元素

setMode

()方法 
public function setMode(width:int, height:int, fps:Number, favorArea:Boolean = true):void

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9

設定攝影機捕捉模式為最能符合特定要求的原生模式。 如果攝影機沒有符合您傳送之所有參數的原生模式,執行階段會選取最能夠合成要求模式的擷取模式。 這項操作可能會牽涉到裁切影像和丟棄影格。

根據預設,執行階段會視需要丟棄影格以維持影像的大小。若要將丟棄影格的數目降到最低 (即使這會造成影像縮小),請傳遞 false 做為 favorArea 參數。

當選擇原生模式時,執行階段會儘量嘗試維持所要求的比例。例如,如果您發出 myCam.setMode(400, 400, 30) 命令,而且攝影機上可用的最大寬度和高度值為 320 和 288,執行階段就會將寬度和高度都設定為 288。執行階段會藉由將這些屬性設定為等值的方式,維持您所要求的 1:1 比例。

若要在執行階段選取最接近您所要求值的模式之後,決定指定給這些屬性的值,請使用 widthheightfps 屬性。

如果您使用的是 Flash Media Server,您也可以擷取單一影格,或建立延時攝影。 如需詳細資訊,請參閱 NetStream.attachCamera()

參數

width:int — 要求的捕捉寬度,以像素為單位。 預設值為 160。
 
height:int — 要求的捕捉高度,以像素為單位。 預設值為 120。
 
fps:Number — 攝影機捕捉資料所需的速率 (以每秒的影格數為單位)。 預設值為 15。
 
favorArea:Boolean (default = true) — 如果攝影機不具符合指定需求的原生模式,則會指定是否要操作寬度、高度和影格速率。 預設值為 true,表示偏好維持捕捉的大小。使用這個參數會選擇最接近 widthheight 值的模式,即使這樣做會因為降低影格速率而對效能產生不良的影響也一樣。 若要犧牲攝影機的高度與寬度來使影格速率最大化,請傳遞 false 做為 favorArea 參數。


擲回值
PermissionError — 應用程式沒有使用攝影機的權限。

相關 API 元素


範例  ( 如何使用本範例 )

在下列範例中,當使用者按一下「舞台」時,視訊會調整大小,每秒影格擷取率也會設定為新值。

「舞台」設定為不縮放。Camera.getCamera() 方法會傳回 Camera 物件的參考,如果攝影機無法使用或未安裝則傳回 null。如果攝影機存在,則會呼叫 connectCamera() 方法。connectCamera() 方法會實體化 Video 物件。為了顯示攝影機擷取的視訊,視訊串流的參考會附加至 Video 物件,並將 Video 物件加入顯示清單中。也會設定 MouseEvent.CLICK 事件的事件偵聽程式。當使用者按一下「舞台」之後,會叫用 clickHandler() 方法。此方法會檢查所擷取視訊的寬度,並設定攝影機擷取模式的寬度、高度和每秒影格要求率。為了使這些設定生效,必須移除並重新建立 Video 物件。視訊的寬度和高度也必須設定為 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

()方法 
public function setMotionLevel(motionLevel:int, timeout:int = 2000):void

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9

會指定傳送 activity 事件所需的移動量。 或者,設定在執行階段認為活動已經停止並傳送事件之前所需經過的無活動狀態毫秒數。

注意:不論 motionLevel 參數的值為何,都能顯示視訊。 這個參數只會決定在何時和何種環境下傳送事件,而不會決定是否實際捕捉或顯示視訊

若需要完全杜絕攝影機偵測移動,請為 motionLevel 參數傳遞 100 這個值,這樣就永遠不會傳送 activity 事件 (您可能只會為了測試目的而使用這個值。例如在傳送事件時,暫時停用一般情況下會觸發的任何處理常式)。

若要判斷攝影機目前偵測的移動量,請使用 activityLevel 屬性。 移動敏感度的值會直接對應到活動的值。 完全沒有移動的活動值為 0; 而經常移動的活動值則為 100。 不移動時,活動值會小於移動敏感度的值;而移動時,活動值則經常會超過移動敏感度的值。

這個方法和 Microphone.setSilenceLevel() 的目的相似,這兩種方法都可用來指定傳送 activity 事件的時機。 然而,這些方法對發佈串流所產生的影響卻截然不同:

  • Microphone.setSilenceLevel() 的設計是要讓頻寬最佳化。 當音效串流被視為靜音時,就不會傳送音效資料。 會改送單一訊息,表示已開始靜音。
  • Camera.setMotionLevel() 的設計目的是偵測移動,而且不會影響頻寬的使用。 即使視訊串流未偵測到移動,它還是會傳送視訊。

參數

motionLevel:int — 會指定傳送 activity 事件所需的移動量。 可接受的範圍值介於 0 到 100 之間。 預設值為 50。
 
timeout:int (default = 2000) — 指定在執行階段認為活動已經停止並傳送 activity 事件之前,必須經過無活動狀態的毫秒數。預設值為 2000 毫秒 (2 秒)。


擲回值
PermissionError — 應用程式沒有使用攝影機的權限。

相關 API 元素


範例  ( 如何使用本範例 )

下列範例中使用使用者的攝影機做為監視攝影機。攝影機會偵測移動,而且文字欄位會顯示活動範圍 (此範例可加以擴充,以透過網路服務或其它應用程式發出警報或傳送訊息)。

Camera.getCamera() 方法會傳回 Camera 物件的參考,如果攝影機無法使用或未安裝則傳回 null。if 陳述式會檢查是否有可用的攝影機,並在找到時叫用 connectCamera() 方法。connectCamera() 方法會使用所擷取串流的寬度和高度來實體化 Video 物件。為了顯示攝影機擷取的視訊,視訊串流的參考會附加至 Video 物件,並將 Video 物件加入顯示清單中。(通常在叫用 attachCamera() 方法時,會顯示對話方塊,提示使用者允許或拒絕 Flash Player 存取攝影機。不過,如果使用者拒絕存取並選取「記憶」選項,便不會顯示對話方塊,也不會顯示提示。為了確保使用者有允許存取攝影機的選項,請使用 system.Security.showSettings() 方法以叫用「Flash Player 設定」對話方塊)。

在叫用 activity 事件之前,setMotionLevel() 方法會將活動範圍 (移動量) 設定為五,表示最小移動。在攝影機停止偵測移動和叫用 activity 事件之間的時間設定為 1 秒 (1000 毫秒)。在無活動狀態發生的 1 秒後或活動範圍達到五之後,會傳送 ActivityEvent.ACTIVITY 事件並叫用 activityHandler() 方法。如果事件是由活動範圍觸發,activating 屬性會設定為 true,而且會啟動 Timer 物件。每秒會傳送 1 個 Timer object’ 的計時器事件,而且會叫用 timerHandler() 方法以顯示目前的活動範圍。(儘管等於或大於五的範圍會觸發計時器,但顯示的目前活動範圍可能是較小的數字)。

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

()方法 
public function setQuality(bandwidth:int, quality:int):void

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9

設定每秒最大頻寬量,或目前播出視訊內容所要求的圖片品質。 這個方法通常只適用於使用 Flash Media Server 來傳輸視訊的狀況。

用這個方法來指定,播出視訊內容的哪一種元素對應用程式比較重要:使用的頻寬或是圖片品質。

  • 若要表示使用的頻寬應列為優先,請傳遞一個值做為 bandwidth 的值,並傳遞 0 做為 quality 的值。 執行階段會在指定的頻寬範圍內,儘量以最高的品質傳輸視訊。執行階段會視需要降低圖片品質,以避免超出指定的頻寬範圍。一般而言,當移動增加時,品質就會降低。
  • 若要表示品質應列為優先,請傳遞 0 做為 bandwidth 的值,並傳遞一個數值做為 quality 的值。 執行階段會儘量使用必要的最高頻寬來維持指定的品質。執行階段會視需要降低影格速率以維持圖片品質。一般而言,當移動增加時,使用的頻寬也會增加。
  • 若要指定頻寬和品質一樣重要,請將數值傳遞給這兩個參數。 執行階段會傳輸未超出指定頻寬而能達到指定品質的視訊。執行階段會視需要降低影格速率,以便在不超出指定頻寬的狀況下維持圖片的品質。

參數

bandwidth:int — 指定目前播出視訊內容可使用的最大頻寬量,以每秒位元組為單位。 若要指定視訊可儘量使用頻寬以維持 quality 的值,請傳遞 0 給 bandwidth。預設值為 16384。
 
quality:int — 指定圖片品質之必要水準的整數,由每個視訊影格所套用的壓縮量決定。從 1 (最低品質,最大壓縮) 到 100 (最高品質,未壓縮) 範圍內可接受的值。 若要指定可視需要改變圖片品質以防止超出頻寬,請將 0 傳遞給 quality


擲回值
PermissionError — 應用程式沒有使用攝影機的權限。

相關 API 元素

事件詳細資訊

activity

事件
事件物件類型: flash.events.ActivityEvent
屬性 ActivityEvent.type = flash.events.ActivityEvent.ACTIVITY

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9

於攝影機開始或結束工作階段時傳送。 呼叫 Camera.setMotionLevel(),指定觸發 activatingtrueactivity 事件所需的移動量,或觸發 activatingfalseactivity 事件之前必須經過的沒有任何活動時間。

ActivityEvent.ACTIVITY 常數會定義 type 屬性值 (activity 事件物件)。

這個事件具有下列屬性:

屬性
activating如果裝置為作用中,則為 true,否則為 false (停用)。
bubblesfalse
cancelablefalse;沒有要取消的預設行為指令。
currentTarget正主動使用事件偵聽程式處理 Event 物件的物件。
target開始或結束工作階段的物件,例如 Camera 或 Microphone 物件。
    

permissionStatus

事件  
事件物件類型: flash.events.PermissionEvent
屬性 PermissionEvent.type = flash.events.PermissionEvent.PERMISSION_STATUS

語言版本: ActionScript 3.0
執行階段版本: AIR 24.0

當應用程式要求權限以使用裝置上的攝影機時傳送。檢查 status 屬性的值,以判斷是否已授與或拒絕權限

相關 API 元素

status

事件  
事件物件類型: flash.events.StatusEvent
屬性 StatusEvent.type = flash.events.StatusEvent.STATUS

語言版本: ActionScript 3.0
執行階段版本: Flash Player 9, AIR (unsupported)

會在攝影機回報其狀態時傳送。 在存取攝影機之前,執行階段會顯示「私用」對話方塊,讓使用者選擇要允許或拒絕對該攝影機進行存取。如果 code 屬性值為 "Camera.Muted",就表示使用者已拒絕 SWF 檔存取使用者的攝影機。如果 code 屬性的值是 "Camera.Unmuted",表示使用者允許 SWF 檔存取使用者的攝影機。

注意:AIR 平台不會傳送這個事件。它僅適用於 Flash Player。

定義 status 事件物件的 type 屬性值。

這個事件具有下列屬性:

屬性
bubblesfalse
cancelablefalse;沒有要取消的預設行為指令。
code物件狀態的說明。
currentTarget正主動使用事件偵聽程式處理 Event 物件的物件。
level訊息的類別,例如 "status""warning""error"
target回報其自身狀態的物件。

相關 API 元素

videoFrame

事件  
事件物件類型: flash.events.Event
屬性 Event.type = flash.events.Event.VIDEO_FRAME

語言版本: ActionScript 3.0
執行階段版本: Flash Player 11.4, AIR 3.4

在新相機影格經過執行階段處理且可供複製之後傳送。

Event.VIDEO_FRAME 常數會定義 videoFrame 事件物件的 type 屬性值。

這個事件具有下列屬性:

屬性
bubblesfalse
cancelablefalse;沒有要取消的預設行為指令。
target傳送此事件的 Camera 物件。

相關 API 元素

CameraExample.as

下列範例會在告知安全性警告後,顯示攝影機的影像。 接著會設定「舞台」使其無法縮放,並對齊播放程式視窗的左上角。 在開始與結束工作階段 (如果有的話) 時會傳送 activity 事件,然後由 activityHandler() 方法進行捕捉,以列印事件的相關資訊。

注意:攝影機必須連接至您的電腦,才能讓此範例正常工作。

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 ]為什麼顯示英文?
「ActionScript 3.0 參考」的內容是以英文顯示

並非所有「ActionScript 3.0 參考」的內容都翻譯為所有語言。當語言元素未翻譯時,就會以英文顯示。例如,ga.controls.HelpBox 類別並沒有翻譯為任何語言。因此在參考的繁體中文版本中,ga.controls.HelpBox 類別就會以英文顯示。