| Pacote | flash.media |
| Classe | public final class Camera |
| Herança | Camera EventDispatcher Object |
For information about capturing audio, see the Microphone class.
Important: Flash Player displays a Privacy dialog box that lets the user choose whether to allow or deny access to the camera. Make sure your application window size is at least 215 x 138 pixels; this is the minimum size required to display the dialog box.
To create or reference a Camera object, use the getCamera() method.
Veja também
| Propriedade | Definido por | ||
|---|---|---|---|
| activityLevel : Number
[read-only]
The amount of motion the camera is detecting.
| Camera | ||
| bandwidth : int
[read-only]
The maximum amount of bandwidth the current outgoing video feed can use, in bytes.
| Camera | ||
![]() | constructor : Object
A reference to the class object or constructor function for a given object instance.
| Object | |
| currentFPS : Number
[read-only]
The rate at which the camera is capturing data, in frames per second.
| Camera | ||
| fps : Number
[read-only]
The maximum rate at which the camera can capture data, in frames per second.
| Camera | ||
| height : int
[read-only]
The current capture height, in pixels.
| Camera | ||
| index : int
[read-only]
A zero-based integer that specifies the index of the camera, as reflected in
the array returned by the names property.
| Camera | ||
| keyFrameInterval : int
[read-only]
The number of video frames transmitted in full (called keyframes)
instead of being interpolated by the video compression algorithm.
| Camera | ||
| loopback : Boolean
[read-only]
Indicates whether a local view of what the camera is capturing is compressed
and decompressed (true), as it would be for live transmission using
Flash Media Server, or uncompressed (false).
| Camera | ||
| motionLevel : int
[read-only]
The amount of motion required to invoke the activity event.
| Camera | ||
| motionTimeout : int
[read-only]
The number of milliseconds between the time the camera stops detecting motion and the time the activity event is invoked.
| Camera | ||
| muted : Boolean
[read-only]
A Boolean value indicating whether the user has denied access to the camera
(true) or allowed access (false) in the Flash Player Privacy dialog box.
| Camera | ||
| name : String
[read-only]
The name of the current camera, as returned by the camera hardware.
| Camera | ||
| names : Array
[static] [read-only]
An array of strings indicating the names of all available cameras
without displaying the Flash Player Privacy dialog box.
| Camera | ||
![]() | prototype : Object
[static]
A reference to the prototype object of a class or function object.
| Object | |
| quality : int
[read-only]
The required level of picture quality, as determined by the amount of compression being applied to each video
frame.
| Camera | ||
| width : int
[read-only]
The current capture width, in pixels.
| Camera | ||
| Método | Definido por | ||
|---|---|---|---|
![]() |
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registers an event listener object with an EventDispatcher object so that the listener
receives notification of an event.
| EventDispatcher | |
![]() |
Dispatches an event into the event flow.
| EventDispatcher | |
|
[static]
Returns a reference to a Camera object for capturing video.
| Camera | ||
![]() |
Checks whether the EventDispatcher object has any listeners registered for a specific type
of event.
| EventDispatcher | |
![]() |
Indicates whether an object has a specified property defined.
| Object | |
![]() |
Indicates whether an instance of the Object class is in the prototype chain of the object specified
as the parameter.
| Object | |
![]() |
Indicates whether the specified property exists and is enumerable.
| Object | |
![]() |
Removes a listener from the EventDispatcher object.
| EventDispatcher | |
|
Specifies which video frames are transmitted in full (called keyframes)
instead of being interpolated by the video compression algorithm.
| Camera | ||
|
Specifies whether to use a compressed video stream for a local view of the camera.
| Camera | ||
|
Sets the camera capture mode to the native mode that best meets the specified requirements.
| Camera | ||
|
Specifies how much motion is required to dispatch the activity event.
| Camera | ||
![]() |
Sets the availability of a dynamic property for loop operations.
| Object | |
|
Sets the maximum amount of bandwidth per second or the required picture quality
of the current outgoing video feed.
| Camera | ||
![]() |
Returns the string representation of the specified object.
| Object | |
![]() |
Returns the primitive value of the specified object.
| Object | |
![]() |
Checks whether an event listener is registered with this EventDispatcher object or any of
its ancestors for the specified event type.
| EventDispatcher | |
| Evento | Descrição | Definido por | ||
|---|---|---|---|---|
![]() | Dispatched when Flash Player or the and AIR application gains operating system focus and becomes active. | EventDispatcher | ||
| Dispatched when a camera begins or ends a session. | Camera | |||
![]() | Dispatched when Flash Player loses operating system focus and is becoming inactive. | EventDispatcher | ||
| Dispatched when a camera reports its status. | Camera | |||
| activityLevel | propriedade |
activityLevel:Number [read-only]
The amount of motion the camera is detecting. Values range from 0 (no motion is being detected) to
100 (a large amount of motion is being detected). The value of this property can help you determine if you need to pass a setting
to the setMotionLevel() method.
If the camera is available but is not yet being used because the
Video.attachCamera() method has not been called, this property
is set to -1.
If you are streaming only uncompressed local video, this property is set only if you have assigned a function to the event handler. Otherwise, it is undefined.
public function get activityLevel():Number
Veja também
| bandwidth | propriedade |
bandwidth:int [read-only] The maximum amount of bandwidth the current outgoing video feed can use, in bytes. A value of 0 means the feed can use as much bandwidth as needed to maintain the desired frame quality.
To set this property, use the setQuality() method.
public function get bandwidth():int
Veja também
| currentFPS | propriedade |
currentFPS:Number [read-only]
The rate at which the camera is capturing data, in frames per second.
This property cannot be set; however, you can use the setMode() method
to set a related property—fps—which specifies the maximum
frame rate at which you would like the camera to capture data.
public function get currentFPS():Number
Veja também
| fps | propriedade |
fps:Number [read-only] The maximum rate at which the camera can capture data, in frames per second. The maximum rate possible depends on the capabilities of the camera; this frame rate may not be achieved.
setMode() method.currentFPS property. public function get fps():Number
Veja também
| height | propriedade |
height:int [read-only]
The current capture height, in pixels. To set a value for this property,
use the setMode() method.
public function get height():int
Veja também
| index | propriedade |
index:int [read-only]
A zero-based integer that specifies the index of the camera, as reflected in
the array returned by the names property.
public function get index():int
Veja também
| keyFrameInterval | propriedade |
keyFrameInterval:int [read-only] The number of video frames transmitted in full (called keyframes) instead of being interpolated by the video compression algorithm. The default value is 15, which means that every 15th frame is a keyframe. A value of 1 means that every frame is a keyframe. The allowed values are 1 through 48.
public function get keyFrameInterval():int
Veja também
| loopback | propriedade |
loopback:Boolean [read-only]
Indicates whether a local view of what the camera is capturing is compressed
and decompressed (true), as it would be for live transmission using
Flash Media Server, or uncompressed (false). The default value is
false.
Although a compressed stream is useful for testing, such as when previewing video quality settings, it has a significant processing cost. The local view is compressed, edited for transmission as it would be over a live connection, and then decompressed for local viewing.
To set this value, use Camera.setLoopback(). To set the amount of
compression used when this property is true, use Camera.setQuality().
public function get loopback():Boolean
Veja também
| motionLevel | propriedade |
motionLevel:int [read-only]
The amount of motion required to invoke the activity event. Acceptable values range from 0 to 100.
The default value is 50.
Video can be displayed regardless of the value of the motionLevel property. For more information, see
setMotionLevel().
public function get motionLevel():int
Veja também
| motionTimeout | propriedade |
motionTimeout:int [read-only]
The number of milliseconds between the time the camera stops detecting motion and the time the activity event is invoked. The
default value is 2000 (2 seconds).
To set this value, use setMotionLevel().
public function get motionTimeout():int
Veja também
| muted | propriedade |
muted:Boolean [read-only]
A Boolean value indicating whether the user has denied access to the camera
(true) or allowed access (false) in the Flash Player Privacy dialog box.
When this value changes, the statusevent is dispatched.
public function get muted():Boolean
Veja também
| name | propriedade |
name:String [read-only] The name of the current camera, as returned by the camera hardware.
public function get name():String
Veja também
| names | propriedade |
names:Array [read-only]
An array of strings indicating the names of all available cameras
without displaying the Flash Player Privacy dialog box. This array behaves in the
same way as any other ActionScript array, implicitly providing the zero-based
index of each camera and the number of cameras on the system (by means of
names.length). For more information, see the names Array class entry.
Calling the names property requires an extensive examination of the hardware,
and it may take several seconds to build the array. In most cases, you can just use the
default camera.
public static function get names():Array
Veja também
| quality | propriedade |
quality:int [read-only] The required level of picture quality, as determined by the amount of compression being applied to each video frame. Acceptable quality values range from 1 (lowest quality, maximum compression) to 100 (highest quality, no compression). The default value is 0, which means that picture quality can vary as needed to avoid exceeding available bandwidth.
To set this property, use the setQuality() method.
public function get quality():int
Veja também
| width | propriedade |
width:int [read-only]
The current capture width, in pixels. To set a desired value for this property,
use the setMode() method.
public function get width():int
Veja também
| getCamera | () | método |
public static function getCamera(name:String = null):Camera
Returns a reference to a Camera object for capturing video. To begin capturing
the video, you must attach the Camera object to a Video object (see Video.attachCamera()
). To transmit video to Flash Media Server, call NetStream.attachCamera()
to attach the Camera object to a NetStream object.
Multiple calls to the getCamera() method reference the same camera driver.
Thus, if your code contains code like firstCam:Camera = getCamera()
and secondCam:Camera = getCamera(),
both firstCam and secondCam reference the same camera,
which is the user's default camera.
In general, you shouldn't pass a value for the name parameter; simply use
getCamera() to return a reference to the default camera. By means of the Camera
settings panel (discussed later in this section), the user can specify the default camera
Flash Player should use.
When a SWF file tries to access the camera returned by getCamera(),
Flash Player displays a dialog box that lets the user choose whether to allow
or deny access to the camera. (Make sure your application window size is at least 215
x 138 pixels; this is the minimum size Flash Player requires to display the dialog box.)
When the user responds to this dialog box, Flash Player returns an information
object in the status event that indicates the user's response:
Camera.muted
indicates the user denied access to a camera;
Camera.Unmuted indicates the user
allowed access to a camera. To determine whether the user has denied or
allowed access to the camera without handling the status event, use the muted
property.
The user can also specify permanent privacy settings for a particular domain by right-clicking (Windows) or Control-clicking (Macintosh) while a SWF file is playing, selecting Settings, opening the Privacy dialog, and selecting Remember.
You can't use ActionScript to set the Allow or Deny value for a user, but you can display
the Privacy dialog box for the user by calling Security.showSettings(SecurityPanel.PRIVACY).
If the user selects Remember, Flash Player no longer asks the user whether to allow or deny
SWF files from this domain access to your camera.
If getCamera() returns null, either the camera is in use by another
application, or there are no cameras installed on the system. To determine whether any cameras
are installed, use the names.length property. To display the Flash Player Camera Settings panel,
which lets the user choose the camera to be referenced by getCamera(), use
System.showSettings(SecurityPanel.CAMERA).
Scanning the hardware for cameras takes time. When Flash Player finds at least one camera,
the hardware is not scanned again for the lifetime of the player instance. However, if
Flash Player doesn't find any cameras, it will scan each time getCamera is called.
This is helpful if a user has forgotten to connect the camera; if your SWF file provides a
Try Again button that calls getCamera, Flash Player can find the camera without the
user having to restart the SWF file.
Parâmetros
name:String (default = null) — Specifies which camera to get, as determined from the array
returned by the names property. For most applications, get the default camera
by omitting this parameter. To specify a value for this parameter, use the string representation
of the zero-based index position within the Camera.names array. For exemplo, to specify the third
camera in the array, use Camera.getCamera("2").
|
Camera — If the name parameter is not specified, this method returns a reference
to the default camera or, if it is in use by another application, to the first
available camera. (If there is more than one camera installed, the user may specify
the default camera in the Flash Player Camera Settings panel.) If no cameras are available
or installed, the method returns null.
|
status: — Dispatched when a camera reports its status.
If the value of the code property is "Camera.muted",
the user has refused to allow the SWF file access to the user's camera.
If the value of the code property is "Camera.Unmuted",
the user has allowed the SWF file access to the user's camera. |
Veja também
| setKeyFrameInterval | () | método |
public function setKeyFrameInterval(keyFrameInterval:int):void
Specifies which video frames are transmitted in full (called keyframes) instead of being interpolated by the video compression algorithm. This method is applicable only if you are transmitting video using Flash Media Server.
The Flash Video compression algorithm compresses video by transmitting only what has changed since the last frame of the video; these portions are considered to be interpolated frames. Frames of a video can be interpolated according to the contents of the previous frame. A keyframe, however, is a video frame that is complete; it is not interpolated from prior frames.
To determine how to set a value for the keyFrameInterval parameter,
consider both bandwidth use and video playback accessibility. For exemplo,
specifying a higher value for keyFrameInterval (sending keyframes less frequently)
reduces bandwidth use.
However, this may increase the amount of time required to position the playhead
at a particular point in the video; more prior video frames may have to be interpolated
before the video can resume.
Conversely, specifying a lower value for keyFrameInterval
(sending keyframes more frequently) increases bandwidth use because entire video frames
are transmitted more often, but may decrease the amount of time required to seek a
particular video frame within a recorded video.
Parâmetros
keyFrameInterval:int — A value that specifies which video frames are transmitted in full
(as keyframes) instead of being interpolated by the video compression algorithm.
A value of 1 means that every frame is a keyframe, a value of 3 means that every third frame
is a keyframe, and so on. Acceptable values are 1 through 48.
|
Veja também
| setLoopback | () | método |
public function setLoopback(compress:Boolean = false):void
Specifies whether to use a compressed video stream for a local view of the camera.
This method is applicable only if you are transmitting video using Flash Media Server;
setting compress to true lets you see more precisely how the video
will appear to users when they view it in real time.
Although a compressed stream is useful for testing purposes, such as previewing video quality settings, it has a significant processing cost, because the local view is not simply compressed; it is compressed, edited for transmission as it would be over a live connection, and then decompressed for local viewing.
To set the amount of compression used when you set compress to true,
use Camera.setQuality().
Parâmetros
compress:Boolean (default = false) — Specifies whether to use a compressed video stream (true)
or an uncompressed stream (false) for a local view of what the camera
is receiving.
|
Veja também
| setMode | () | método |
public function setMode(width:int, height:int, fps:Number, favorArea:Boolean = true):void
Sets the camera capture mode to the native mode that best meets the specified requirements. If the camera does not have a native mode that matches all the parameters you pass, Flash Player selects a capture mode that most closely synthesizes the requested mode. This manipulation may involve cropping the image and dropping frames.
By default, Flash Player drops frames as needed to maintain image size. To minimize the number
of dropped frames, even if this means reducing the size of the image, pass false
for the favorArea parameter.
When choosing a native mode, Flash Player tries to maintain the requested aspect ratio
whenever possible. For exemplo, if you issue the command myCam.setMode(400, 400, 30),
and the maximum width and height values available on the camera are 320 and 288, Flash Player sets
both the width and height at 288; by setting these properties to the same value, Flash Player
maintains the 1:1 aspect ratio you requested.
To determine the values assigned to these properties after Flash Player selects the mode
that most closely matches your requested values, use the width, height,
and fps properties.
If you are using Flash Media Server, you can also capture single frames or create time-lapse
photography. For more information, see NetStream.attachCamera().
Parâmetros
width:int — The requested capture width, in pixels. The default value is 160.
|
|
height:int — The requested capture height, in pixels. The default value is 120.
|
|
fps:Number — The requested rate at which the camera should capture data, in frames per second.
The default value is 15.
|
|
favorArea:Boolean (default = true) — Specifies whether to manipulate the width, height, and frame rate if
the camera does not have a native mode that meets the specified requirements.
The default value is true, which means that maintaining capture size
is favored; using this parameter selects the mode that most closely matches
width and height values, even if doing so adversely affects
performance by reducing the frame rate. To maximize frame rate at the expense
of camera height and width, pass false for the favorArea parameter.
|
Veja também
| setMotionLevel | () | método |
public function setMotionLevel(motionLevel:int, timeout:int = 2000):void
Specifies how much motion is required to dispatch the activity event.
Optionally sets the number of milliseconds that must elapse without activity before
Flash Player considers motion to have stopped and dispatches the event.
Note: Video can be displayed regardless of the value of the
motionLevel parameter. This parameter determines only when and under
what circumstances the event is dispatched—not whether video is actually being
captured or displayed.
To prevent the camera from detecting motion at all, pass a value of 100 for the
motionLevel parameter; the activity event is never dispatched.
(You would probably use this value only for testing purposes—for exemplo, to
temporarily disable any handlers that would normally be triggered when the event is dispatched.)
To determine the amount of motion the camera is currently detecting, use the
activityLevel property.
Motion sensitivity values correspond directly to activity values.
Complete lack of motion is an activity value of 0. Constant motion is an activity value of 100.
Your activity value is less than your motion sensitivity value when you're not moving;
when you are moving, activity values frequently exceed your motion sensitivity value.
This method is similar in purpose to the Microphone.setSilenceLevel() method;
both methods are used to specify when the activity event
should be dispatched. However, these methods have a significantly different impact
on publishing streams:
Microphone.setSilenceLevel() is designed to optimize bandwidth.
When an audio stream is considered silent, no audio data is sent. Instead, a single message
is sent, indicating that silence has started. Camera.setMotionLevel() is designed to detect motion and does not affect
bandwidth usage. Even if a video stream does not detect motion, video is still sent.Parâmetros
motionLevel:int — Specifies the amount of motion required to dispatch the
activity event. Acceptable values range from 0 to 100. The default value is 50.
|
|
timeout:int (default = 2000) — Specifies how many milliseconds must elapse without activity
before Flash Player considers activity to have stopped and dispatches the activity event.
The default value is 2000 milliseconds (2 seconds).
|
Veja também
| setQuality | () | método |
public function setQuality(bandwidth:int, quality:int):void
Sets the maximum amount of bandwidth per second or the required picture quality of the current outgoing video feed. This method is generally applicable only if you are transmitting video using Flash Media Server.
Use this method to specify which element of the outgoing video feed is more important to your application—bandwidth use or picture quality.
bandwidth
and 0 for quality. Flash Player transmits video at the highest quality
possible within the specified bandwidth. If necessary, Flash Player reduces picture
quality to avoid exceeding the specified bandwidth. In general, as motion increases,
quality decreases.bandwidth
and a numeric value for quality. Flash Player uses as much bandwidth
as required to maintain the specified quality. If necessary, Flash Player reduces the frame
rate to maintain picture quality. In general, as motion increases, bandwidth use also
increases.Parâmetros
bandwidth:int — Specifies the maximum amount of bandwidth that the current outgoing video
feed can use, in bytes per second. To specify that Flash Player video can use as much bandwidth
as needed to maintain the value of quality, pass 0 for
bandwidth. The default value is 16384.
|
|
quality:int — An integer that specifies the required level of picture quality,
as determined by the amount of compression being applied to each video frame.
Acceptable values range from 1 (lowest quality, maximum compression) to 100 (highest
quality, no compression). To specify that picture quality can vary as needed to avoid
exceeding bandwidth, pass 0 for quality.
|
Veja também
| activity | Evento |
flash.events.ActivityEvent
flash.events.ActivityEvent.ACTIVITY
Dispatched when a camera begins or ends a session.
Call Camera.setMotionLevel() to specify the amount of motion
required to trigger an activity event with an activating
value of true, or the time without activity
that must elapse before triggering an activity event with an activating
value of false.
ActivityEvent.ACTIVITY constant defines the value of the type property of an activity event object.
This event has the following properties:
| Propriedade | Valor |
|---|---|
activating | true if the device is activating or false if it is deactivating. |
bubbles | false |
cancelable | false; there is no default behavior to cancel. |
currentTarget | The object that is actively processing the Event object with an event listener. |
target | The object beginning or ending a session, such as a Camera or Microphone object. |
| status | Evento |
flash.events.StatusEvent
flash.events.StatusEvent.STATUS
Dispatched when a camera reports its status.
If the value of the code property is "Camera.muted",
the user has refused to allow the SWF file access to the user's camera.
If the value of the code property is "Camera.Unmuted",
the user has allowed the SWF file access to the user's camera.
type property of a status event object.
This event has the following properties:
| Propriedade | Valor |
|---|---|
bubbles | false |
cancelable | false; there is no default behavior to cancel. |
code | A description of the object's status. |
currentTarget | The object that is actively processing the Event object with an event listener. |
level | The category of the message, such as "status", "warning" or "error". |
target | The object reporting its status. |
Veja também
activity event is dispatched at the
start and end (if any) of the session and is captured by the activityHandler()
method, which prints out information about the event.
Note: A camera must be attached to your computer for this exemplo to work correctly.
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);
}
}
}