Flash Media Server |
|||
| Client-Side ActionScript Language Reference for Flash Media Server 2 > Client-Side ActionScript Language Reference > Camera class > Camera.get() | |||
public static get([index:Number]) : Camera
|
NOTE |
|
To assign the Camera object to a variable, use the following syntax: |
index An optional zero-based integer that specifies which camera driver to get, as determined from the array returned by Camera.names. To get the default camera driver (which is recommended for most applications), omit this parameter.
index is not specified, this method returns a reference to the default camera driver or, if it is in use by another application, to the first available camera driver. (If there is more than one camera driver installed, the user may specify the default camera driver in the Flash Player Camera Settings panel.) If no camera drivers are available or installed, the method returns null.index is specified, this method returns a reference to the requested camera driver, or null if it is not available. Method; returns a reference to a Camera object for capturing video. To actually begin capturing the video, you must attach the Camera object either to a Video object (see Video.attachVideo()) or to a NetStream object (see NetStream.attachVideo()). (The NetStream object is available only with Flash Media Server.)
|
NOTE |
|
The |
Unlike objects that you create using the new constructor, multiple calls to Camera.get() reference the same camera driver. Thus, if your script contains the lines cam1 = Camera.get() and cam2 = Camera.get(), both cam1 and cam2 reference the same (default) camera driver.
In general, you shouldn't pass a value for index; simply use Camera.get() to return a reference to the default camera driver. By means of the Camera settings panel (discussed later in this section), the user can specify the default camera driver Flash should use. If you pass a value for index, you might be trying to reference a camera driver other than the one the user prefers. You might use index in rare cases--for example, if your application is capturing video from two cameras at the same time.
When a SWF file tries to access the camera returned by Camera.get()--for example, when you issue NetStream.attachVideo() or Video.attachVideo()--Flash Player displays a Privacy dialog box that lets the user choose whether to allow or deny access to the camera. (Make sure your Stage size is at least 215 by 138 pixels; this is the minimum size Flash requires to display the dialog box.)
When the user responds to this dialog box, the Camera.onStatus event handler returns an information object that indicates the user's response. To determine whether the user has denied or allowed access to the camera without processing this event handler, use Camera.muted.
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 and selecting Settings. When the Privacy dialog box opens, the user selects 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 using System.showSettings(0). If the user selects Remember, Flash Player no longer displays the Privacy dialog box for SWF files from this domain.
If Camera.get() 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 Camera.names.length. To display the Flash Player Camera Settings panel, which lets the user choose the camera driver to be referenced by Camera.get(), use System.showSettings(3).
Scanning the hardware for cameras takes time. When Flash finds at least one camera, the hardware is not scanned again for the lifetime of the Flash Player instance. However, if Flash doesn't find any cameras, it will scan each time Camera.get() 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 Camera.get(), Flash can find the camera without the user having to restart the SWF file.
The following example lets you select an active camera to use from a ComboBox instance. The current active camera is displayed in a Label instance. Create a new video instance by selecting New Video from the Library options menu. Add an instance to the Stage and give it the instance name my_video. Add a Label component instance to the Stage and give it the instance name camera_lbl, and a ComboBox component instance and give it the instance name cameras_cb. Then add the following ActionScript to Frame 1 of the Timeline:
var my_cam:Camera = Camera.get();
var my_video:Video;
my_video.attachVideo(my_cam);
var camera_lbl:mx.controls.Label;
var cameras_cb:mx.controls.ComboBox;
camera_lbl.text = my_cam.name;
cameras_cb.dataProvider = Camera.names;
function changeCamera():Void {
my_cam = Camera.get(cameras_cb.selectedIndex);
my_video.attachVideo(my_cam);
camera_lbl.text = my_cam.name;
}
cameras_cb.addEventListener("change", changeCamera);
camera_lbl.setStyle("fontSize", 9);
cameras_cb.setStyle("fontSize", 9);
Camera.index, Camera.muted, Camera.names, Camera.onStatus, Camera.setMode(), NetStream.attachVideo(), System.showSettings(), Video.attachVideo()
Send me an e-mail when comments are added to this page | Comment Report
Current page: http://livedocs.adobe.com/fms/2/docs/00000531.html