Return to Snippet

Revision: 29446
at July 29, 2010 18:34 by jansensan


Initial Code
/**
 * Neave Camera
 *
 * Copyright (C) 2008 Paul Neave
 * http://www.neave.com/
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation at http://www.gnu.org/licenses/gpl.html
 */

package com.neave.media
{
	import flash.events.*;
	import flash.media.*;
	import flash.system.*;

	public class NeaveCamera
	{
		/**
		 * The requested width of the camera object
		 */
		static public var CAMERA_WIDTH:int = 320;

		/**
		 * The requested height of the camera object
		 */
		static public var CAMERA_HEIGHT:int = 240;

		static private var cam:Camera;


		public function NeaveCamera()
		{
		}


		/**
		 * Sets up and returns the camera object
		 *
		 * @return	A camera object
		 */
		static public function getCamera():Camera
		{
			// Return the same camera if it has been successfully requested before
			if(cam != null)
			{
				if(cam.muted)
					Security.showSettings(SecurityPanel.PRIVACY);
				return cam;
			}

			// Get the camera
			cam = Camera.getCamera();
			if(cam != null)
			{
				// Set properties if a camera was found
				cam.setMode(CAMERA_WIDTH, CAMERA_HEIGHT, 30, true);
				cam.addEventListener(StatusEvent.STATUS, NeaveCamera.statusListener);
				return cam;
			}
			else
			{
				// No camera found
				if(Camera.names.length > 0)
				{
					// If there are cameras listed on the computer
					Security.showSettings(SecurityPanel.CAMERA);
					return new Camera();
				}
				else
				{
					// If there no cameras at all
					return null;
				}
			}
		}


		/**
		 * Whether the camera object is available or not
		 */
		static public function get muted():Boolean
		{
			return cam == null || cam.muted || cam.name == null || cam.width == 0;
		}


		/**
		 * Camera status response
		 */
		static private function statusListener(e:StatusEvent):void
		{
			switch(e.code)
			{
				case "Camera.Unmuted":
					Security.showSettings(SecurityPanel.CAMERA);
					break;

				default:
//					trace(e.code);
					break;
			}
		}
	}
}

Initial URL


Initial Description
I modified the getCamera() function of the source available on http://www.neave.com/webcam/ so that if Camera.names is 0, the function does not create a camera

Initial Title
com.neave.media.NeaveCamera modification

Initial Tags


Initial Language
ActionScript 3