public static get([index:Number]) : Camera
Returns a reference to a Camera object for capturing video. To begin capturing video, you must attach the Camera object either to a Video object (see Video.attachVideo()) or to a NetStream object (see NetStream.attachVideo()).
Unlike objects that you create by 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, the user can specify the default camera driver that Flash Player 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 in which the user can choose whether to allow or deny access to the camera. (Make sure that your Stage size is at least 215 by 138 pixels; this is the minimum size that Flash Player 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 then 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, in which the user can choose the camera driver to be referenced by Camera.get(), use System.showSettings(3).
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 Flash Player instance. However, if Flash Player doesn't find any cameras, it scans 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 Player can find the camera without the user having to restart the SWF file.
Flash Media Server (not required); Flash Player 6.
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.
If 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 more than one camera driver is installed, the user can specify the default camera driver in the Flash Player Camera Settings panel.) If no camera drivers are available or installed, the method returns null.
If index is specified, this method returns a reference to the requested camera driver, or null if it is not available.
The following example lets you select an active camera to use from a ComboBox instance. The currently active camera is displayed in a Label instance. Create a new video instance by selecting New Video from the Library panel 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. Add a ComboBox component instance and give it the instance name cameras_cb. Then add the following code 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()