Flash Media Server Developer Documentation

Camera.setMotionLevel()

public setMotionLevel([motionLevel:Number], [timeOut:Number]) : Void

Specifies how much motion is required to invoke Camera.onActivity(true). This method optionally sets the number of milliseconds that must elapse without activity before Flash Player considers motion to have stopped and invokes Camera.onActivity(false).

Note: Video can be displayed regardless of the value of the motionLevel parameter. This parameter determines only 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 motionLevel; 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-level values correspond directly to activity values. Complete lack of motion is an activity value of 0. Constant motion is an activity value of 100. When you're not moving, your activity value is less than your motion- level value; when you are moving, activity values frequently exceed your motion-level 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.

Availability

Flash Media Server (not required); Flash Player 6.

Parameters

motionLevel 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 Player considers activity to have stopped and invokes the Camera.onActivity(false) event handler. The default value is 2000 (2 seconds).

Example

The following example sends messages to the Output panel 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 that a Video object named "myVideoObject" is on the Stage. 
active_cam = Camera.get();
x = 0;
function motion(mode) {
    trace(x + ": " + mode);
    x++;
}
active_cam.onActivity = function(mode) {
    motion(mode);
}
active_cam.setMotionLevel(30, 500);
myVideoObject.attachVideo(active_cam);

See also

Camera.activityLevel, Camera.motionLevel, Camera.motionTimeOut, Camera.onActivity()