Client-Side Communication ActionScript > Camera.setMotionLevel

 

Camera.setMotionLevel

Availability

Flash Player 6.

Flash Communication Server MX (not required).

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 Camera.onActivity(false). The default value is 2000 (2 seconds).

Returns

Nothing.

Description

Method; specifies how much motion is required to invoke Camera.onActivity(true). 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 Camera.activityLevel.

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