/ Published in: ActionScript 3
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
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
/** * 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; } } } }