Пакет | flash.media |
Класс | public final class Microphone |
Наследование | Microphone EventDispatcher Object |
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Чтобы получить доступ к микрофону устройства, можно воспользоваться методом Microphone.getMicrophone()
. Однако этот метод возвращает простой микрофон, в котором нет возможности устранить акустический эхо-сигнал. Для устранения акустического эхо-сигнала необходимо получить экземпляр Microphone, используя метод Microphone.getEnhancedMicrophone()
. Этот метод возвращает микрофон устройства с функцией акустического эхоподавления для мобильных устройств. Используйте акустическое эхоподавление для создания аудио- или видеоприложений, работающих в реальном времени, в которых не требуются наушники.
Создание приложения чата в реальном времени
Чтобы создать приложение чата в реальном времени, выполните захват звука и отправьте его на сервер Flash Media Server. Используйте классы NetConnection и NetStream для отправки аудиопотока на сервер Flash Media Server. Сервер Flash Media Server может транслировать аудиоданные другим клиентам. Чтобы создать приложение чата, в котором не требуются наушники, используйте акустическое эхоподавление. Акустическое эхоподавление предотвращает появление петли обратной связи, которая возникает, когда звук захватывается микрофоном, выводится на динамики и снова захватывается микрофоном. Чтобы использовать акустическое эхоподавление, вызовите метод Microphone.getEnhancedMicrophone()
для получения ссылки на экземпляр Microphone. Задайте свойство Microphone.enhancedOptions
в качестве значения экземпляра класса MicrophoneEnhancedOptions
для настройки параметров.
Локальное воспроизведение звука с микрофона
Вызовите метод setLoopback()
объекта Microphone, чтобы передать звук с микрофона непосредственно на локальный компьютер или аудиовыход устройства. Существует внутренняя угроза появления неуправляемой звуковой обратной связи в том случае, если выходные аудиоданные могут быть захвачены микрофоном. Метод setUseEchoSuppression()
позволяет уменьшить, но не исключить, риск усиления обратной связи.
Захват звука с микрофона для локальной записи или обработки
Для захвата звука с микрофона прослушайте события sampleData
, отправляемые экземпляром Microphone. Объект SampleDataEvent, отправленный для этого события, содержит аудиоданные.
Сведения о записи видео см. в описании класса Camera.
Поддержка микрофона в среде выполнения
Класс Microphone не поддерживается в среде Flash Player, работающей в мобильном браузере.
Поддержка в профилях AIR: класс Microphone поддерживается в компьютерных операционных системах, а также на мобильных устройствах iOS и Android. Он не поддерживается на устройствах AIR for TV. Дополнительные сведения о поддержке API-интерфейса в разных профилях см. в разделе «Поддержка в профилях AIR».
Используйте свойство Microphone.isSupported
, чтобы проверить наличие поддержки в среде выполнения. Обратите внимание, что на устройствах AIR for TV Microphone.isSupported
имеет значение true
, но Microphone.getMicrophone()
всегда возвращает null
.
Элементы управления конфиденциальностью
В среде Flash Player отображается диалоговое окно «Конфиденциальность», в котором пользователь может предоставить или запретить доступ к микрофону. Размер окна программы должен составлять не менее 215 x 138 пикселей, что является минимальным размером для отображения диалогового окна, или доступ запрещается автоматически.
Содержимому, выполняющемуся в изолированной программной среде программы AIR, не требуются разрешения для доступа к микрофону, и диалоговое окно не отображается. Содержимому AIR, выполняющемуся за пределами изолированной программной среды программы, требуется разрешение, и диалоговое окно «Конфиденциальность» отображается.
Дополнительно
Кристоф Конрац (Cristophe Coenraets): Голосовые заметки для платформы Android
Микаэль Шез (Michael Chaize): AIR, Android и микрофон
Связанные элементы API
Свойство | Определено | ||
---|---|---|---|
activityLevel : Number [только для чтения]
Уровень звука, распознаваемый микрофоном. | Microphone | ||
codec : String
Кодек, используемый для сжатия аудио. | Microphone | ||
constructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. | Object | ||
enableVAD : Boolean
Включение обнаружения голосовой активности Speex. | Microphone | ||
encodeQuality : int
Качество зашифрованной речи при использовании кодека Speex. | Microphone | ||
enhancedOptions : MicrophoneEnhancedOptions
Управляет улучшенными параметрами микрофона. | Microphone | ||
framesPerPacket : int
Количество речевых кадров Speex, передаваемых в пакете (сообщении). | Microphone | ||
gain : Number
Степень усиления сигнала микрофоном. | Microphone | ||
index : int [только для чтения]
Индекс микрофона согласно содержимому массива, возвращаемого функцией Microphone.names. | Microphone | ||
isSupported : Boolean [статические] [только для чтения]
Свойству isSupported задается значение true, если текущая платформа поддерживает класс Microphone, в противном случае задается значение false. | Microphone | ||
muted : Boolean [только для чтения]
Определяет наличие у пользователя доступа к микрофону: нет доступа (true), или доступ разрешен (false). | Microphone | ||
name : String [только для чтения]
Имя текущего устройства звукозаписи, возвращаемое данным устройством. | Microphone | ||
names : Array [статические] [только для чтения]
Массив строк, содержащих имена всех доступных устройств звукозаписи. | Microphone | ||
noiseSuppressionLevel : int
Максимальное ослабление шума в дБ (отрицательное число), используемое для кодека Speex. | Microphone | ||
permissionStatus : String [статические] [только для чтения]
Определяет, предоставлено или нет приложению разрешение на использование микрофона. | Microphone | ||
rate : int
Частота, с которой микрофон записывает звук, в кГц. | Microphone | ||
silenceLevel : Number [только для чтения]
Уровень звука, необходимый для активации микрофона и передачи события activity. | Microphone | ||
silenceTimeout : int [только для чтения]
Число миллисекунд с момента, когда микрофон камера прекратила распознавать звук, до вызова события activity. | Microphone | ||
soundTransform : flash.media:SoundTransform
Управляет звуком этого объекта Microphone, когда микрофон работает в режиме петли. | Microphone | ||
useEchoSuppression : Boolean [только для чтения]
Возвращает true, если эхокомпенсация включена, в противном случае возвращает false. | Microphone |
Метод | Определено | ||
---|---|---|---|
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Регистрирует объект прослушивателя события на объекте EventDispatcher для получения прослушивателем уведомления о событии. | EventDispatcher | ||
Посылает событие в поток событий. | EventDispatcher | ||
[статические]
Возвращает ссылку на расширенный объект Microphone, который может выполнить акустическое эхоподавление. | Microphone | ||
[статические]
Возвращает ссылку на объект Microphone для записи аудио. | Microphone | ||
Проверяет, имеет ли объект EventDispatcher прослушиватели, зарегистрированные для определенного типа события. | EventDispatcher | ||
Показывает, определено ли заданное свойство для объекта. | Object | ||
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | ||
Показывает наличие заданного свойства и его перечисляемость. | Object | ||
Удаляет прослушиватель из объекта EventDispatcher. | EventDispatcher | ||
Запрашивает разрешение на использование микрофона для приложения. | Microphone | ||
Направляет записываемое микрофоном аудио на локальные динамики. | Microphone | ||
Задает доступность динамического свойства для операций цикла. | Object | ||
Задает минимальный входной уровень, который будет обрабатываться как звук и (дополнительно) продолжительность тишины, по которой настоящую тишину можно будет отличить от паузы. | Microphone | ||
Определяет, используется ли функция эхокомпенсации аудиокодека. | Microphone | ||
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали. | Object | ||
Возвращает строковое представление заданного объекта. | Object | ||
Возвращает элементарное значение заданного объекта. | Object | ||
Проверяет, зарегистрирован ли прослушиватель события для указанного типа события с данным объектом EventDispatcher или любым его предшественником. | EventDispatcher |
activityLevel | свойство |
activityLevel:Number
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Уровень звука, распознаваемый микрофоном. Значения находятся в диапазоне от 0 (звук не определяется) до 100 (определяется очень громкий звук). Значение этого свойства помогает определить подходящее значение для передачи методу Microphone.setSilenceLevel()
.
Если для свойства микрофона muted
установлено значение true
, это свойство всегда имеет значение -1.
Реализация
public function get activityLevel():Number
Выдает
PermissionError — Приложение не имеет разрешения на использование микрофона.
|
Связанные элементы API
codec | свойство |
codec:String
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Кодек, используемый для сжатия аудио. Доступные кодеки: Nellymoser (по умолчанию) и Speex. Класс перечисления SoundCodec
содержит различные значения, действительные для свойства codec
.
При использовании кодека Nellymoser можно установить частоту дискретизации с помощью Microphone.rate()
. При использовании кодека Speex частота дискретизации составляет 16 кГц.
Speex включает систему обнаружения речевой активности (Voice Activity Detection, VAD) и обеспечивает автоматическое уменьшение полосы пропускания при отсутствии речевой активности. При использовании кодека Speex компания Adobe рекомендует установить значение уровня тишины на 0. Для установки уровня тишины используйте метод Microphone.setSilenceLevel()
.
Реализация
public function get codec():String
public function set codec(value:String):void
Выдает
PermissionError — Приложение не имеет разрешения на использование микрофона.
|
Связанные элементы API
enableVAD | свойство |
enableVAD:Boolean
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10.1, AIR 2 |
Включение обнаружения голосовой активности Speex.
Реализация
public function get enableVAD():Boolean
public function set enableVAD(value:Boolean):void
Выдает
PermissionError — Приложение не имеет разрешения на использование микрофона.
|
encodeQuality | свойство |
encodeQuality:int
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Качество зашифрованной речи при использовании кодека Speex. Допускаются значения от 0 до 10. Значением по умолчанию является 6. Более высокие значение подразумевают лучшее качество, но требуют большей пропускной способности в соответствии с таблицей ниже. Приведенные значения скорости потока являются чистыми значениями без учета данных пакетирования.
Уровень качества | Необходимая скорость потока (килобит в секунду) |
---|---|
0 | 3.95 |
1 | 5.75 |
2 | 7.75 |
3 | 9.80 |
4 | 12.8 |
5 | 16.8 |
6 | 20.6 |
7 | 23.8 |
8 | 27.8 |
9 | 34.2 |
10 | 42.2 |
Реализация
public function get encodeQuality():int
public function set encodeQuality(value:int):void
Выдает
PermissionError — Приложение не имеет разрешения на использование микрофона.
|
Связанные элементы API
enhancedOptions | свойство |
enhancedOptions:MicrophoneEnhancedOptions
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10.3, AIR 2.7 |
Управляет улучшенными параметрами микрофона. Дополнительные сведения см. в описании класса MicrophoneEnhancedOptions
. Это свойство игнорируется у нерасширенных экземпляров объекта Microphone.
Реализация
public function get enhancedOptions():MicrophoneEnhancedOptions
public function set enhancedOptions(value:MicrophoneEnhancedOptions):void
Выдает
PermissionError — Приложение не имеет разрешения на использование микрофона.
|
Связанные элементы API
framesPerPacket | свойство |
framesPerPacket:int
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Количество речевых кадров Speex, передаваемых в пакете (сообщении). Длина каждого кадра составляет 20 мс. Значение по умолчанию — два кадра в пакете.
Чем больше кадров в сообщении Speex, тем уже необходимая полоса пропускания, но дольше задержка при отправке сообщения. При уменьшении количества кадров Speex увеличивается необходимая полоса пропускания, но сокращается задержка.
Реализация
public function get framesPerPacket():int
public function set framesPerPacket(value:int):void
gain | свойство |
gain:Number
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Степень усиления сигнала микрофоном. Действительны значения от 0 до 100. Значением по умолчанию является 50.
Реализация
public function get gain():Number
public function set gain(value:Number):void
Выдает
PermissionError — Приложение не имеет разрешения на использование микрофона.
|
Связанные элементы API
index | свойство |
index:int
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Индекс микрофона согласно содержимому массива, возвращаемого функцией Microphone.names
.
Реализация
public function get index():int
Выдает
PermissionError — Приложение не имеет разрешения на использование микрофона.
|
Связанные элементы API
isSupported | свойство |
isSupported:Boolean
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10.1, AIR 2 |
Свойству isSupported
задается значение true
, если текущая платформа поддерживает класс Microphone, в противном случае задается значение false
.
Реализация
public static function get isSupported():Boolean
muted | свойство |
muted:Boolean
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Определяет наличие у пользователя доступа к микрофону: нет доступа (true
), или доступ разрешен (false
). При изменении этого значения отправляется событие status
. Дополнительные сведения см. в описании метода Microphone.getMicrophone()
.
Реализация
public function get muted():Boolean
Выдает
PermissionError — Приложение не имеет разрешения на использование микрофона.
|
Связанные элементы API
name | свойство |
names | свойство |
names:Array
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Массив строк, содержащих имена всех доступных устройств звукозаписи. При возвращении имен пользователю не отображается панель параметров конфиденциальности. Этот массив передает индекс от нуля для каждого устройства звукозаписи и количество этих устройств в системе посредством свойства Microphone.names.length
. Дополнительные сведения см. в разделе в описании класса Array.
Вызов метода Microphone.names
требует обширного анализа аппаратных средств, и на составление массива может потребоваться несколько секунд. В большинстве случаев можно использовать микрофон по умолчанию.
Примечание. Для определения имени текущего микрофона используйте свойство name
.
Реализация
public static function get names():Array
Связанные элементы API
noiseSuppressionLevel | свойство |
noiseSuppressionLevel:int
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10.1, AIR 2 |
Максимальное ослабление шума в дБ (отрицательное число), используемое для кодека Speex. Если включено, перед сжатием кодеком Spеex звука, захваченного с микрофона, выполняется шумоподавление. Чтобы отключить шумоподавление, нужно задать значение 0. Шумоподавление по умолчанию включено с ослаблением -30 дБ. Игнорируется, когда выбран кодек Nellymoser.
Реализация
public function get noiseSuppressionLevel():int
public function set noiseSuppressionLevel(value:int):void
Выдает
PermissionError — Приложение не имеет разрешения на использование микрофона.
|
permissionStatus | свойство |
rate | свойство |
rate:int
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Частота, с которой микрофон записывает звук, в кГц. Допустимыми являются значения 5, 8, 11, 22 и 44. Значение по умолчанию — 8 кГц, если его поддерживает звукозаписывающее устройство. В противном случае, значением по умолчанию становится ближайший уровень записи выше 8 кГц, поддерживаемый звукозаписывающим устройством, обычно это 11 кГц.
Примечание. Фактическая частота немного отличается от значения rate
, как описано в следующей таблице.
Значение rate | Фактическая частота |
---|---|
44 | 44 100 Гц |
22 | 22 050 Гц |
11 | 11 025 Гц |
8 | 8 000 Гц |
5 | 5 512 Гц |
Реализация
public function get rate():int
public function set rate(value:int):void
Выдает
PermissionError — Приложение не имеет разрешения на использование микрофона.
|
Связанные элементы API
silenceLevel | свойство |
silenceLevel:Number
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Уровень звука, необходимый для активации микрофона и передачи события activity
. Значением по умолчанию является 10.
Реализация
public function get silenceLevel():Number
Выдает
PermissionError — Приложение не имеет разрешения на использование микрофона.
|
Связанные элементы API
silenceTimeout | свойство |
silenceTimeout:int
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Число миллисекунд с момента, когда микрофон камера прекратила распознавать звук, до вызова события activity
. Значение по умолчанию 2000 (две секунды).
Для установки этого значения используйте метод Microphone.setSilenceLevel()
.
Реализация
public function get silenceTimeout():int
Выдает
PermissionError — Приложение не имеет разрешения на использование микрофона.
|
Связанные элементы API
soundTransform | свойство |
soundTransform:flash.media:SoundTransform
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Управляет звуком этого объекта Microphone, когда микрофон работает в режиме петли.
Реализация
public function get soundTransform():flash.media:SoundTransform
public function set soundTransform(value:flash.media:SoundTransform):void
Выдает
PermissionError — Приложение не имеет разрешения на использование микрофона.
|
useEchoSuppression | свойство |
useEchoSuppression:Boolean
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Возвращает true
, если эхокомпенсация включена, в противном случае возвращает false
. Значение по умолчанию — false
, если пользователь не выбрал «Уменьшить эхо» на панели «Параметры микрофона» проигрывателя Flash Player.
Реализация
public function get useEchoSuppression():Boolean
Связанные элементы API
getEnhancedMicrophone | () | метод |
public static function getEnhancedMicrophone(index:int = -1):Microphone
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10.3, AIR 2.7 |
Возвращает ссылку на расширенный объект Microphone, который может выполнить акустическое эхоподавление. Используйте акустическое эхоподавление для создания приложений аудио- или видеочата, в которых не требуются наушники.
Параметр index
для методов Microphone.getEnhancedMicrophone()
и Microphone.getMicrophone()
работает одинаково.
Чтобы использовать этот метод на Android, добавьте разрешение MODIFY_AUDIO_SETTINGS
в дополнениях декларации для Android в дескрипторе приложения.
Важно. В любой момент времени доступен только один экземпляр расширенного устройства микрофона. Все остальные экземпляры объекта Microphone перестают предоставлять аудиоданные и получают событие StatusEvent
со свойством code
, имеющим значение Microphone.Unavailable
. В случае неудачной инициализации расширенного аудио при вызове этого метода возвращается значение null
, установка значения Microphone.enhancedOptions
не имеет силы и все существующие экземпляры Microphone работают прежде.
Чтобы настроить расширенный объект Microphone, задайте свойство Microphone.enhancedOptions
. Следующий код демонстрирует использование расширенного объекта Microphone и полнодуплексного акустического эхоподавления при локальном тестировании.
var mic:Microphone = Microphone.getEnhancedMicrophone(); var options:MicrophoneEnhancedOptions = new MicrophoneEnhancedOptions(); options.mode = MicrophoneEnhancedMode.FULL_DUPLEX; mic.enhancedOptions = options; mic.setLoopBack(true);
Метод setUseEchoSuppression ()
игнорируется при использовании акустического эхоподавления.
Когда SWF-файл пытается обратиться к объекту, возвращенному методом Microphone.getEnhancedMicrophone()
, например при вызове метода NetStream.attachAudio()
, проигрыватель Flash Player отображает диалоговое окно «Конфиденциальность», с помощью которого пользователь может разрешить или запретить доступ к микрофону. (Убедитесь в том, что размеры рабочей области составляют не менее 215 х 138 пикселей. Это минимальный размер, необходимый проигрывателю Flash Player для отображения диалогового окна.)
Параметры
index:int (default = -1 ) — Значение индекса микрофона.
|
Microphone — Ссылка на объект Microphone для записи аудио. В случае неудачной инициализации расширенного аудио возвращает значение null .
|
Связанные элементы API
getMicrophone | () | метод |
public static function getMicrophone(index:int = -1):Microphone
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Возвращает ссылку на объект Microphone для записи аудио. Для начала записи аудио, необходимо присоединить объект Microphone к объекту NetStream (см. NetStream.attachAudio()
).
Многочисленные вызовы метода Microphone.getMicrophone()
ссылаются на один микрофон. Таким образом, если код содержит строки mic1 = Microphone.getMicrophone()
и mic2 = Microphone.getMicrophone()
, то и mic1
и mic2
ссылаются на один и тот же микрофон (по умолчанию).
Как правило, не следует передавать значение для index
. Просто используйте метод Microphone.getMicrophone()
для получения ссылки на микрофон по умолчанию. В разделе настроек микрофона на панели «Параметры Flash Player» пользователь может задать микрофон по умолчанию, который должно использовать приложение. (Доступ к панели параметров настройки Flash Player можно получить, щелкнув правой кнопкой мыши по содержимому Flash Player в веб-браузере.) Если передать значение для параметра index
, то метод может ссылаться не на тот микрофон, который выберет пользователь. Параметр index
можно использовать в редких случаях, например, если приложение записывает аудио одновременно с двух микрофонов. Содержимое, выполняемое в Adobe AIR, также использует установку Flash Player для микрофона по умолчанию.
Используйте свойство Microphone.index
для получения значения индекса текущего объекта Microphone. Затем можно передать это значение другим методам класса Microphone.
Когда SWF-файл пытается обратиться к объекту, возвращенному методом Microphone.getMicrophone()
, например при вызове метода NetStream.attachAudio()
, проигрыватель Flash Player отображает диалоговое окно «Конфиденциальность», с помощью которого пользователь может разрешить или запретить доступ к микрофону. (Убедитесь в том, что размеры рабочей области составляют не менее 215 х 138 пикселей. Это минимальный размер, необходимый проигрывателю Flash Player для отображения диалогового окна.)
Когда пользователь отвечает на запрос диалогового окна, отправляется соответствующее событие status
. Также можно проверить свойство Microphone.muted
для определения, предоставил пользователь доступ к микрофону или нет.
Если метод Microphone.getMicrophone()
возвращает значение null
, это значит, что микрофон используется другим приложением или в системе не установлены микрофоны. Чтобы узнать, установлены ли микрофоны, используйте Microphones.names.length
. Чтобы отобразить панель «Настройки микрофона» проигрывателя Flash Player, где пользователь может выбрать микрофон для метода Microphone.getMicrophone
, используйте метод Security.showSettings()
.
Параметры
index:int (default = -1 ) — Значение индекса микрофона.
|
Microphone — Ссылка на объект Microphone для записи аудио.
|
События
status: — Отправляется, когда микрофон сообщает о своем состоянии. Если свойство code имеет значение Microphone.Muted , пользователь отказался предоставить SWF-файлу доступ к микрофону. Если свойство code имеет значение Microphone.Unmuted , пользователь предоставил SWF-файлу доступ к микрофону.
|
Связанные элементы API
Пример ( Использование этого примера )
var mic:Microphone = Microphone.getMicrophone(); mic.setLoopBack(); mic.addEventListener(StatusEvent.STATUS, mic_status); var tf:TextField = new TextField(); tf.autoSize = TextFieldAutoSize.LEFT; tf.text = "Detecting microphone..."; addChild(tf); function mic_status(evt:StatusEvent):void { tf.text = "Microphone is muted?: " + mic.muted; switch (evt.code) { case "Microphone.Unmuted": tf.appendText("\n" + "Microphone access was allowed."); break; case "Microphone.Muted": tf.appendText("\n" + "Microphone access was denied."); break; } }
requestPermission | () | метод |
public function requestPermission():void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 24.0 |
Запрашивает разрешение на использование микрофона для приложения.
События
PermissionStatus: — отправляется, когда запрашиваемое разрешение предоставляется или не предоставляется пользователем.
|
setLoopBack | () | метод |
public function setLoopBack(state:Boolean = true):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Направляет записываемое микрофоном аудио на локальные динамики.
Параметры
state:Boolean (default = true )
|
Выдает
PermissionError — Приложение не имеет разрешения на использование микрофона.
|
setSilenceLevel | () | метод |
public function setSilenceLevel(silenceLevel:Number, timeout:int = -1):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Задает минимальный входной уровень, который будет обрабатываться как звук и (дополнительно) продолжительность тишины, по которой настоящую тишину можно будет отличить от паузы.
- Чтобы микрофон совсем не улавливал звук, передайте значение 100 для
silenceLevel
; в этом случае событиеactivity
никогда не отправляется. - Чтобы определить уровень звука, в данный момент улавливаемый микрофоном, используйте
Microphone.activityLevel
.
Speex включает систему обнаружения речевой активности (Voice Activity Detection, VAD) и обеспечивает автоматическое уменьшение полосы пропускания при отсутствии речевой активности. При использовании кодека Speex компания Adobe рекомендует установить значение уровня тишины на 0.
Обнаружение активности — это способность определять, когда уровень звука указывает на то, что пользователь говорит. Когда пользователь не говорит, можно экономить полосу пропускания, так как не требуется передавать соответствующий аудиопоток. Эти сведения также можно использовать для визуальной обратной связи, чтобы сообщить пользователям о том, что они (или другие) молчат.
Значения тишины прямо соответствуют значениям активности. Полную тишину представляет значение активности 0. Постоянный громкий шум (настолько громкий, насколько это возможно зарегистрировать на основе текущей настройки усиления) соответствует значению активности 100. После соответствующей регулировки усиления значение активности составляет меньше, чем значение тишины, когда вы не говорите. Во время разговора значение активности превышает значение тишины.
Этот метод похож на Camera.setMotionLevel()
; они оба используются для определения момента отправки события activity
. Однако эти методы имеют в значительной степени различное влияние на публикацию потоков.
- Метод
Camera.setMotionLevel()
предназначен для определения движения и не влияет на использование полосы пропускания. Даже если видеопоток не обнаруживает движения, видео все равно передается. - Метод
Microphone.setSilenceLevel()
предназначен для оптимизации использования полосы пропускания. Когда аудиопоток считается тихим, аудиоданные не передаются. Вместо этого отправляется одно сообщение, свидетельствующее о наступлении тишины.
Параметры
silenceLevel:Number — Уровень звука, необходимый для активации микрофона и передачи события activity . Диапазон допустимых значений — от 0 до 100.
| |
timeout:int (default = -1 ) — Число миллисекунд, которое должно пройти без активности, прежде чем проигрыватель Flash Player или Adobe AIR зарегистрирует остановку звука и отправит событие dispatch . Значение по умолчанию 2000 (две секунды). (Примечание. Значение по умолчанию, показываемое в подписи, -1, — это внутреннее значение, предписывающее проигрывателю Flash Player или Adobe AIR использовать значение 2000.)
|
Выдает
PermissionError — Приложение не имеет разрешения на использование микрофона.
|
Связанные элементы API
setUseEchoSuppression | () | метод |
public function setUseEchoSuppression(useEchoSuppression:Boolean):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Определяет, используется ли функция эхокомпенсации аудиокодека. Значение по умолчанию — false
, если пользователь не выбрал «Уменьшить эхо» на панели «Параметры микрофона» проигрывателя Flash Player.
Эхокомпенсацией называется попытка уменьшить эффект звуковой обратной связи, возникающей при улавливании звука из динамика микрофоном, подключенным к той же системе. (Следует отличать эхокомпенсацию от акустического эхоподавления, при котором обратная связь убирается полностью. Метод setUseEchoSuppression()
игнорируется, когда вызывается метод getEnhancedMicrophone()
для акустического эхоподавления.)
Как правило, эхокомпенсацию рекомендуется использовать, когда записываемый звук воспроизводится на том же компьютере через динамики, а не наушники. Если SWF-файл разрешает пользователям указывать устройство вывода звука, можно вызвать методMicrophone.setUseEchoSuppression(true)
, если они используют динамики и собираются использовать микрофон.
Пользователи могут также регулировать параметры на панели параметров микрофона проигрывателя Flash Player.
Параметры
useEchoSuppression:Boolean — Булево значение, обозначающее разрешение на использование эхоподавления (true ) или не (false ).
|
Выдает
PermissionError — Приложение не имеет разрешения на использование микрофона.
|
Связанные элементы API
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); } } }
Tue Jun 12 2018, 11:34 AM Z