diff options
Diffstat (limited to 'webcam/media/NeaveMicrophone.as')
| -rw-r--r-- | webcam/media/NeaveMicrophone.as | 104 |
1 files changed, 0 insertions, 104 deletions
diff --git a/webcam/media/NeaveMicrophone.as b/webcam/media/NeaveMicrophone.as deleted file mode 100644 index 4f6e6c1..0000000 --- a/webcam/media/NeaveMicrophone.as +++ /dev/null @@ -1,104 +0,0 @@ -/** - * Neave Microphone - * - * 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.*; - import flash.utils.*; - - public class NeaveMicrophone - { - static private var mic:Microphone; - static private var gainTimer:Timer; - - public function NeaveMicrophone() { } - - /** - * Sets up and returns the microphone object - * - * @return A microphone object - */ - static public function getMicrophone():Microphone - { - // Return the same microphone if it has been successfully requested before - if (mic != null) - { - if (mic.muted) Security.showSettings(SecurityPanel.PRIVACY); - else NeaveMicrophone.startAutoGain(); - return mic; - } - - gainTimer = new Timer(100); - - // Get the microphone - mic = Microphone.getMicrophone(); - if (mic != null) - { - // Set properties if a microphone was found - mic.setLoopBack(true); - mic.rate = 44; - mic.gain = 25; - mic.setSilenceLevel(0); - mic.setUseEchoSuppression(true); - mic.soundTransform = new SoundTransform(0); // Mute microphone from sounding on speakers - mic.addEventListener(StatusEvent.STATUS, NeaveMicrophone.statusListener); - - return mic; - } - else - { - // No microphone found - Security.showSettings(SecurityPanel.MICROPHONE); - return new Microphone(); - } - } - - /** - * Microphone status response - */ - static private function statusListener(e:StatusEvent):void - { - if (e.code == "Microphone.Unmuted") NeaveMicrophone.startAutoGain(); - else NeaveMicrophone.stopAutoGain(); - } - - /** - * Set up gain control - */ - static public function startAutoGain():void - { - gainTimer.start(); - if (!gainTimer.hasEventListener(TimerEvent.TIMER)) gainTimer.addEventListener(TimerEvent.TIMER, setGain); - } - - /** - * Stop gain control - */ - static public function stopAutoGain():void - { - gainTimer.stop(); - gainTimer.reset(); - gainTimer.removeEventListener(TimerEvent.TIMER, setGain); - } - - /** - * Dynamically adjust the microphone's gain value - */ - static private function setGain(e:TimerEvent):void - { - if (mic.activityLevel < 15) mic.gain = 30; - else if (mic.activityLevel > 90) mic.gain = 20; - else mic.gain = 25; - } - } -}
\ No newline at end of file |
