A-C > Camera.setMotionLevel |  |

Camera.setMotionLevel

Camera, video, Camera.setMotionLevel, setMotionLevel

Communications/Camera/Methods/setMotionLevel

Availability

Flash Player 6.

Usage

    activeCamera.setMotionLevel(sensitivity [, timeout])

Parameters

`sensitivity` A numeric value that specifies the amount of motion required to invoke `Camera.onActivity``(true)`. Acceptable values range from 0 to 100. The default value is 50.

`timeout` An optional numeric parameter that specifies how many milliseconds must elapse without activity before Flash considers activity to have stopped and invokes the `Camera.onActivity``(false)` event handler. The default value is 2000 (2 seconds).

Returns

Nothing.

Description

Method; specifies how much motion is required to invoke the `Camera.onActivity``(true)` event handler. Optionally sets the number of milliseconds that must elapse without activity before Flash considers motion to have stopped and invokes `Camera.onActivity``(false)`.

Note: Video can be displayed regardless of the value of the `sensitivity` parameter. This parameter only determines when and under what circumstances `Camera.onActivity` is invoked, not whether video is actually being captured or displayed.

| To prevent the camera from detecting motion at all, pass a value of 100 for `sensitivity`; `Camera.onActivity` is never invoked. (You would probably use this value only for testing purposes—for example, to temporarily disable any actions set to occur when `Camera.onActivity` is invoked.)
| To determine the amount of motion the camera is currently detecting, use the `Camera.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 `Microphone.setSilenceLevel`; both methods are used to specify when the `onActivity` event handler should be invoked. 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.

Example

The following example sends messages to the Output window when video activity starts or stops. Change the motion sensitivity value of 30 to a higher or lower number to see how different values affect motion detection.

    // Assumes a Video object named "myVideoObject" is on the Stage
    c = Camera.get();
    x = 0;
    function motion(mode)
    {
    	trace(x + ": " + mode);
    	x++;
    }
    c.onActivity = function(mode) {motion(mode);};
    c.setMotionLevel(30, 500);
    myVideoObject.attachVideo(c);

See also

`Camera.activityLevel`, `Camera.motionLevel`, `Camera.motionTimeOut`, `Camera.onActivity`