Главная / Action Script 3
Пакетflash.media
Классpublic final class Microphone
НаследованиеMicrophone Inheritance EventDispatcher Inheritance Object

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Используйте класс Microphone, чтобы записывать звук с микрофона, подключенного к компьютеру, на котором работает проигрыватель Flash Player. Используйте класс Microphone для локального отслеживания аудиоданных. Используйте классы NetConnection и NetStream для передачи аудиоданных на сервер Flash Media Server. Flash Media Server может передавать аудио другим серверам и транслировать его на другие клиентские компьютеры, на которых работает Flash Player.

Сведения о записи видео см. в описании класса Camera.

Важно! Проигрыватель Flash Player показывает диалоговое окно "Конфиденциальность", в котором пользователь может предоставить или запретить доступ к микрофону. Убедитесь в том, что размеры окна приложения составляют не менее 215 х 138 пикселов. Это минимальный размер, необходимый для отображения диалогового окна.

Чтобы создать объект Microphone или сослаться на него, используйте метод Microphone.getMicrophone().

Посмотреть примеры

См. также

flash.media.Camera
Основные сведения о работе со звуком
Введение в работу со звуком


Общедоступные свойства
 СвойствоОпределено
  activityLevel : Number
[только для чтения] Уровень звука, распознаваемый микрофоном.
Microphone
  codec : String
Кодек для сжатия аудио.
Microphone
 Inheritedconstructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта.
Object
  encodeQuality : int
Качество зашифрованной речи при использовании кодека Speex.
Microphone
  framesPerPacket : int
Количество речевых кадров Speex, передаваемых в пакете (сообщении).
Microphone
  gain : Number
Усиление микрофона — это степень умножения микрофонного сигнала перед его передачей.
Microphone
  index : int
[только для чтения] Индекс микрофона согласно содержимому массива, возвращаемого функцией Microphone.names.
Microphone
  muted : Boolean
[только для чтения] Определяет наличие у пользователя доступа к микрофону: нет доступа (true), или доступ разрешен (false).
Microphone
  name : String
[только для чтения] Имя текущего устройства звукозаписи, возвращаемое данным устройством.
Microphone
  names : Array
[статические] [только для чтения] Массив строк, содержащих имена всех доступных устройств звукозаписи.
Microphone
 Inheritedprototype : Object
[статические] Ссылка на модель объекта класса или функции.
Object
  rate : int
Частота, с которой микрофон записывает звук, в кГц.
Microphone
  silenceLevel : Number
[только для чтения] Уровень звука, необходимый для активации микрофона и передачи события Activity.
Microphone
  silenceTimeout : int
[только для чтения] Число миллисекунд с момента, когда микрофон камера прекратила распознавать звук, до вызова события Activity.
Microphone
  soundTransform : SoundTransform
Управляет звуком этого объекта Microphone, когда микрофон работает в режиме петли.
Microphone
  useEchoSuppression : Boolean
[только для чтения] Возвращает true, если эхокомпенсация включена, в противном случае возвращает false.
Microphone
Общедоступные методы
 МетодОпределено
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Регистрирует объект прослушивателя события в объекте EventDispatcher, в результате чего прослушиватель будет получать уведомления о событиях.
EventDispatcher
 Inherited
Передает событие в поток событий.
EventDispatcher
  
[статические] Возвращает ссылку на объект Microphone для записи аудио.
Microphone
 Inherited
Проверяет наличие у объекта EventDispatcher прослушивателей событий, которые зарегистрированы для получения уведомлений о событиях определенного типа.
EventDispatcher
 Inherited
Показывает, определено ли заданное свойство для объекта.
Object
 Inherited
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.
Object
 Inherited
Показывает наличие заданного свойства и его перечисляемость.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Удаляет прослушиватель из объекта EventDispatcher.
EventDispatcher
  
setLoopBack(state:Boolean = true):void
Направляет записываемое микрофоном аудио на локальные динамики.
Microphone
 Inherited
Задает доступность динамического свойства для операций цикла.
Object
  
setSilenceLevel(silenceLevel:Number, timeout:int = -1):void
Задает минимальный входной уровень, который будет обрабатываться как звук и (дополнительно) продолжительность тишины, по которой настоящую тишину можно будет отличить от паузы.
Microphone
  
setUseEchoSuppression(useEchoSuppression:Boolean):void
Определяет, используется ли функция эхокомпенсации аудиокодека.
Microphone
 Inherited
Возвращает строковое представление заданного объекта.
Object
 Inherited
Возвращает элементарное значение заданного объекта.
Object
 Inherited
Проверяет, зарегистрирован ли прослушиватель событий в объекте EventDispatcher или в любом из его предков для получения уведомлений о событиях определенного типа.
EventDispatcher
События
 Событие Сводка Определено
 Inherited[многоадресное событие] Отправляется, когда проигрыватель Flash Player перемещается в фокус операционной системы и становится активным.EventDispatcher
  Отправляется, когда микрофон начинает или заканчивает сеанс.Microphone
 Inherited[многоадресное событие] Отправляется, когда проигрыватель Flash Player покидает фокус операционной системы и становится неактивным.EventDispatcher
  Отправляется, когда микрофон сообщает о своем состоянии.Microphone
Сведения о свойстве
activityLevelсвойство
activityLevel:Number  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Уровень звука, распознаваемый микрофоном. Значения находятся в диапазоне от 0 (звук не определяется) до 100 (определяется очень громкий звук). Значение этого свойства помогает определить подходящее значение для передачи методу Microphone.setSilenceLevel().

Если микрофон доступен, но не используется, потому что не вызван метод Microphone.getMicrophone(), это свойство имеет значение -1.



Реализация
    public function get activityLevel():Number

См. также

codecсвойство 
codec:String  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения:  10, 1.5

Кодек для сжатия аудио. По умолчанию используется кодек Nellymoser. Класс перечисления SoundCodec содержит различные значения, действительные для свойства codec.



Реализация
    public function get codec():String
    public function set codec(value:String):void

См. также

encodeQualityсвойство 
encodeQuality:int  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения:  10, 1.5

Качество зашифрованной речи при использовании кодека Speex. Допускаются значения от 0 до 10. Значение по умолчанию 6. Более высокие значение подразумевают лучшее качество, но требуют большей пропускной способности в соответствии с таблицей ниже. Приведенные значения скорости потока являются чистыми значениями без учета данных пакетирования.

Уровень качестваНеобходимая скорость потока (килобит в секунду)
70 3,95
15,75
27,75
39,80
412,8
516,8
620,6
723,8
827,8
934,2
1042,2



Реализация
    public function get encodeQuality():int
    public function set encodeQuality(value:int):void

См. также

framesPerPacketсвойство 
framesPerPacket:int  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения:  10, 1.5

Количество речевых кадров Speex, передаваемых в пакете (сообщении). Длина каждого кадра составляет 20 мс. Значение по умолчанию — два кадра в пакете.

Чем больше кадров в сообщении Speex, тем уже необходимая полоса пропускания, но дольше задержка при отправке сообщения. При уменьшении количества кадров Speex увеличивается необходимая полоса пропускания, но сокращается задержка.



Реализация
    public function get framesPerPacket():int
    public function set framesPerPacket(value:int):void
gainсвойство 
gain:Number  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Усиление микрофона — это степень умножения микрофонного сигнала перед его передачей. Значение 0 предписывает проигрывателю Flash Player выполнять умножение на 0; в этом случае микрофон не передает звук.

Этот параметр напоминает регулятор громкости стереосистемы: 0 — это выключенная громкость, а 50 — нормальная громкость. Числа до 50 определяют громкость, которая ниже нормальной, а числа после 50 задают громкость выше нормальной. Допустимые значения — от 0 до 100, а значение по умолчанию — 50. Пользователь может изменять это значение на панели параметров микрофона Flash Player.



Реализация
    public function get gain():Number
    public function set gain(value:Number):void

См. также

indexсвойство 
index:int  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Индекс микрофона согласно содержимому массива, возвращаемого функцией Microphone.names.



Реализация
    public function get index():int

См. также

mutedсвойство 
muted:Boolean  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Определяет наличие у пользователя доступа к микрофону: нет доступа (true), или доступ разрешен (false). При изменении этого значения отправляется событие status. Дополнительные сведения см. в описании метода Microphone.getMicrophone().



Реализация
    public function get muted():Boolean

См. также

nameсвойство 
name:String  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Имя текущего устройства звукозаписи, возвращаемое данным устройством.



Реализация
    public function get name():String

См. также

namesсвойство 
names:Array  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Массив строк, содержащих имена всех доступных устройств звукозаписи. При возвращении имен пользователю не отображается панель параметров конфиденциальности. Этот массив передает индекс от нуля для каждого устройства звукозаписи и количество этих устройств в системе посредством свойства Microphone.names.length. Дополнительные сведения см. в описании класса Array.

Вызов метода Microphone.names требует обширного анализа аппаратных средств, и на составление массива может потребоваться несколько секунд. В большинстве случаев можно использовать микрофон по умолчанию.

Примечание. Для определения имени текущего микрофона используйте свойство name.



Реализация
    public static function get names():Array

См. также

rateсвойство 
rate:int  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Частота, с которой микрофон записывает звук, в кГц. Допускаются любые из следующих значений, поддерживаемых звуковым устройством: 5, 8, 11, 22 или 44.

Значение по умолчанию — 8 кГц, если его поддерживает звукозаписывающее устройство. В противном случае, значением по умолчанию становится ближайший уровень записи выше 8 кГц, поддерживаемый звукозаписывающим устройством, обычно это 11 кГц.



Реализация
    public function get rate():int
    public function set rate(value:int):void
silenceLevelсвойство 
silenceLevel:Number  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Уровень звука, необходимый для активации микрофона и передачи события activity. Значение по умолчанию 10.



Реализация
    public function get silenceLevel():Number

См. также

silenceTimeoutсвойство 
silenceTimeout:int  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Число миллисекунд с момента, когда микрофон камера прекратила распознавать звук, до вызова события activity. Значение по умолчанию 2000 (две секунды).

Чтобы задать это значение, используйте метод Microphone.setSilenceLevel().



Реализация
    public function get silenceTimeout():int

См. также

soundTransformсвойство 
soundTransform:SoundTransform  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Управляет звуком этого объекта Microphone, когда микрофон работает в режиме петли.



Реализация
    public function get soundTransform():SoundTransform
    public function set soundTransform(value:SoundTransform):void
useEchoSuppressionсвойство 
useEchoSuppression:Boolean  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Возвращает true, если эхокомпенсация включена, в противном случае возвращает false. Значение по умолчанию — false, если пользователь не выбрал "Уменьшить эхо" на панели "Параметры микрофона" проигрывателя Flash Player.



Реализация
    public function get useEchoSuppression():Boolean

См. также

Сведения о методе
getMicrophone()метод
public static function getMicrophone(index:int = -1):Microphone

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Возвращает ссылку на объект Microphone для записи аудио. Чтобы начать запись аудио, необходимо присоединить объект Microphone к объекту NetStream (см. NetStream.attachAudio()).

Многочисленные вызовы Microphone.get() ссылаются на один микрофон. Таким образом, если код содержит строки mic1 = Microphone.get() и mic2 = Microphone.get(), и mic1 и mic2 ссылаются на один и тот же микрофон (по умолчанию).

Чтобы получить микрофон по умолчанию, нужно вызвать метод getMicrophone(), указав значение -1. Также его можно вызвать без параметров, тогда метод возвратит первый микрофон в списке.

Используйте свойство index, чтобы получить значение индекса текущего объекта Microphone. Затем можно передать это значение другим методам класса Microphone.

Как правило, не следует передавать значение для index. Просто используйте метод Microphone.get(), чтобы получить ссылку на микрофон по умолчанию. На панели "Параметры микрофона" можно задать микрофон по умолчанию, который должен использовать проигрыватель Flash Player. Если передать значение для параметра index, то метод может ссылаться не на тот микрофон, который выберет пользователь. Параметр index можно использовать в редких случаях, например если приложение записывает аудио одновременно с двух микрофонов.

Когда SWF-файл пытается обратиться к объекту, возвращенному методом Microphone.get(), например при вызове NetStream.attachAudio(), проигрыватель Flash Player отображает диалоговое окно "Конфиденциальность", с помощью которого пользователь может разрешить или запретить доступ к микрофону. (Убедитесь в том, что размеры рабочей области составляют не менее 215х 138 пикселов. Это минимальный размер, необходимый проигрывателю Flash Player для отображения диалогового окна.)

Когда пользователь отвечает на запрос диалогового окна, отправляется соответствующее событие status. Также можно проверить свойство Microphone.muted, чтобы определить, предоставил пользователь доступ к микрофону или нет.

Если Microphone.get() возвращает значение null, это значит, что микрофон используется другим приложением или что в системе не установлены микрофоны. Чтобы узнать, установлены ли микрофоны, используйте Microphones.names.length. Чтобы отобразить панель "Параметры микрофона" проигрывателя Flash Player, где пользователь может выбрать микрофон для метода Microphone.get, используйте метод Security.showSettings().

Параметры

index:int (default = -1) — Значение индекса микрофона.

Возвращает
Microphone — Ссылка на объект Microphone для записи аудио.

События
status:StatusEvent — Отправляется, когда микрофон сообщает о своем состоянии. Если свойство codeимеет значение "Microphone.Muted", пользователь отказался предоставить SWF-файлу доступ к микрофону. Если свойство codeимеет значение "Microphone.Unmuted", пользователь предоставил SWF-файлу доступ к микрофону.

См. также

setLoopBack()метод 
public function setLoopBack(state:Boolean = true):void

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Направляет записываемое микрофоном аудио на локальные динамики.

Параметры

state:Boolean (default = true)

setSilenceLevel()метод 
public function setSilenceLevel(silenceLevel:Number, timeout:int = -1):void

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Задает минимальный входной уровень, который будет обрабатываться как звук и (дополнительно) продолжительность тишины, по которой настоящую тишину можно будет отличить от паузы.

Обнаружение активности — это способность определять, когда уровень звука указывает на то, что человек говорит. Когда человек не говорит, можно экономить полосу пропускания, так как не требуется передавать соответствующий аудиопоток. Эти сведения также можно использовать для визуальной обратной связи, чтобы сообщить пользователям о том, что они (или другие) молчат.

Значения тишины прямо соответствуют значениям активности. Полную тишину представляет значение активности 0. Постоянный громкий шум (настолько громкий, насколько это возможно зарегистрировать на основе текущей настройки усиления) соответствует значению активности 100. После соответствующей регулировки усиления значение активности составляет меньше, чем значение тишины, когда вы не говорите. Во время разговора значение активности превышает значение тишины.

Этот метод похож на Camera.setMotionLevel(); они оба используются для определения момента отправки события activity. Однако эти методы имеют в значительной степени различное влияние на публикацию потоков.

Параметры

silenceLevel:Number — Уровень звука, необходимый для активации микрофона и передачи события activity. Диапазон допустимых значений — от 0 до 100.
 
timeout:int (default = -1) — Число миллисекунд, которое должно пройти без активности, прежде чем проигрыватель Flash Player зарегистрирует остановку звука и отправит событие dispatch. Значение по умолчанию 2000 (две секунды). (Примечание. Значение по умолчанию, показываемое в подписи, -1, — это внутреннее значение, предписывающее проигрывателю Flash Player использовать значение 2000.)

См. также

setUseEchoSuppression()метод 
public function setUseEchoSuppression(useEchoSuppression:Boolean):void

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Определяет, используется ли функция эхокомпенсации аудиокодека. Значение по умолчанию — false, если пользователь не выбрал "Уменьшить эхо" на панели "Параметры микрофона" проигрывателя Flash Player.

Эхокомпенсацией называется попытка уменьшить эффект звуковой обратной связи, возникающей при улавливании звука из динамика микрофоном, подключенным к тому же компьютеру. (Следует отличать эхокомпенсацию от эхоподавления, при котором обратная связь убирается полностью.)

Как правило, эхокомпенсацию рекомендуется использовать, когда записываемый звук воспроизводится на том же компьютере через динамики, а не наушники. Если SWF-файл разрешает пользователям указывать устройство вывода звука, можно вызвать методMicrophone.setUseEchoSuppression(true), если они используют динамики и собираются использовать микрофон.

Пользователи могут также регулировать параметры на панели параметров микрофона проигрывателя Flash Player.

Параметры

useEchoSuppression:Boolean — Логическое значение, указывающее на то, должна ли использоваться эхокомпенсация (true) или нет (false).

См. также

Сведения о событии
activity Событие
Тип объекта события: flash.events.ActivityEvent
свойство ActivityEvent.type = flash.events.ActivityEvent.ACTIVITY

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Отправляется, когда микрофон начинает или заканчивает сеанс.

Чтобы указать, сколько звука требуется для запуска события со свойством activating в значении true или сколько времени должно пройти без звука для запуска этого события со свойством activating в значении false, используйте метод Microphone.setSilenceLevel().

Константа ActivityEvent.ACTIVITY определяет значение свойства typeобъекта события activity.

Данное событие имеет следующие свойства.

СвойствоЗначение
activatingtrue, если устройство активируется, илиfalse, если деактивируется.
bubblesfalse
cancelablefalse; нет поведения по умолчанию для отмены.
currentTargetОбъект, активно обрабатывающий объект Event с помощью прослушивателя событий.
targetОбъект, начинающий или завершающий сеанс, например объект Camera или Microphone.

См. также

status Событие  
Тип объекта события: flash.events.StatusEvent
свойство StatusEvent.type = flash.events.StatusEvent.STATUS

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Отправляется, когда микрофон сообщает о своем состоянии. Если свойство code имеет значение Microphone.Muted, пользователь отказался предоставить SWF-файлу доступ к микрофону. Если свойство code имеет значениеMicrophone.Unmuted, пользователь предоставил SWF-файлу доступ к микрофону.

Задает значение свойства type для объекта события Status.

Данное событие имеет следующие свойства.

СвойствоЗначение
bubblesfalse
cancelablefalse; нет поведения по умолчанию для отмены.
codeОписание состояния объекта.
currentTargetОбъект, активно обрабатывающий объект Event с помощью прослушивателя событий.
levelКатегория сообщения, например "состояние", "предупреждение" или "ошибка".
targetОбъект, сообщающий свое состояние.

См. также

Примеры Как пользоваться примерами
MicrophoneExample.as

В следующем примере записывается звук с эхокомпенсацией, после того как пользователь разрешает доступ к микрофону на своем компьютере. Метод Security.showSettings() отображает диалоговое окно проигрывателя Flash Player, в котором запрашивается разрешение на доступ к микрофону пользователя. Вызов setLoopBack(true) переводит ввод на локальный динамик, чтобы при выполнения примера можно быть слышать звук.

Добавляется два прослушивателя для событий activity и status. Событие activity отправляется при запуске и после окончания (если это применимо) сеанса методу activityHandler(), который отслеживает информацию события. Событие status отправляется, если присоединенный объект Microphone сообщает информацию о состоянии. Его получает и отслеживает метод statusHandler().

Примечание. Для правильной работы примера к компьютеру должен быть подключен микрофон.


package {
    import flash.display.Sprite;
    import flash.events.*;
    import flash.media.Microphone;
    import flash.system.Security;

    public class MicrophoneExample extends Sprite {
        public function MicrophoneExample() {
            var mic:Microphone = Microphone.getMicrophone();
            Security.showSettings("2");
            mic.setLoopBack(true);
                    
            if (mic != null) {
                mic.setUseEchoSuppression(true);
                mic.addEventListener(ActivityEvent.ACTIVITY, activityHandler);
                mic.addEventListener(StatusEvent.STATUS, statusHandler);
            }
        }

        private function activityHandler(event:ActivityEvent):void {
            trace("activityHandler: " + event);
        }

        private function statusHandler(event:StatusEvent):void {
            trace("statusHandler: " + event);
        }
    }
}