Package | flash.media |
Classe | public final class Microphone |
Héritage | Microphone EventDispatcher Object |
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Pour accéder au microphone du périphérique, vous pouvez utiliser la méthode Microphone.getMicrophone()
. Toutefois, cette méthode renvoie un microphone unique qui ne permet pas d'éliminer l'écho acoustique. Pour éliminer l'écho acoustique, vous devez obtenir une occurrence de microphone à l'aide de la méthode Microphone.getEnhancedMicrophone()
. Cette méthode renvoie un microphone de périphérique qui dispose de la fonction d'annulation de l'écho pour les périphériques mobiles. Utilisez l’annulation de l’écho acoustique pour créer des applications audio/vidéo en temps réel qui n’exigent pas l’utilisation d’un casque.
Création d’une application de dialogue en ligne en temps réel
Pour créer une application de dialogue en ligne en temps réel, capturez des données audio et envoyez-les à Flash Media Server. Utilisez les classes NetConnection et NetStream pour transmettre le flux audio à Flash Media Server. Flash Media Server peut diffuser le son à d’autres clients. Pour créer une application de dialogue en ligne qui n’exige pas l’utilisation d’un casque, utilisez l’annulation de l’écho acoustique. L’annulation de l’écho acoustique empêche la boucle de réaction acoustique (qui se produit lorsque le son pénètre dans un microphone) de sortir des haut-parleurs et d’entrer à nouveau dans le microphone. Pour utiliser l’annulation de l’écho acoustique, appelez la méthode Microphone.getEnhancedMicrophone()
afin d’obtenir une référence à une occurrence de Microphone. Définissez Microphone.enhancedOptions
sur une occurrence de la classe MicrophoneEnhancedOptions
pour configurer les paramètres.
Lecture locale du son du microphone
Appelez la méthode setLoopback()
du microphone pour acheminer le son du microphone directement vers la sortie audio de l’ordinateur local ou du périphérique. Une réaction acoustique incontrôlée constitue un danger sous-jacent susceptible de se produire chaque fois que la sortie audio peut être captée par l’entrée du microphone. La méthode setUseEchoSuppression()
peut réduire, mais pas éliminer, le risque de réaction acoustique.
Capture du son du microphone pour l’enregistrement ou le traitement local
Pour capturer le son du microphone, écoutez les événements sampleData
distribués par une occurrence de Microphone. L’objet SampleDataEvent distribué pour cet événement contient les données audio.
Pour plus d’informations sur la capture vidéo, voir la classe Camera.
Prise en charge du microphone par le moteur d’exécution
La classe Microphone n’est pas prise en charge dans Flash Player s’exécutant dans un navigateur mobile.
Prise en charge du profil AIR : la classe Microphone est prise en charge sur les systèmes d’exploitation de poste de travail et les appareils mobiles iOS et Android. Elle n’est pas prise en charge sur les périphériques AIR pour TV. Voir Prise en charge du profil AIR pour plus d’informations sur la prise en charge de l’API dans plusieurs profils.
Vous pouvez tester la prise en charge lors de l’exécution à l’aide de la propriété Microphone.isSupported
. Notez que pour les périphériques AIR pour TV, Microphone.isSupported
est true
, mais Microphone.getMicrophone()
renvoie toujours null
.
Commandes de confidentialité
Flash Player affiche une boîte de dialogue Confidentialité qui permet à l’utilisateur d’autoriser ou de refuser l’accès au microphone. La taille de la fenêtre de votre application doit être d’au moins 215 x 138 pixels, taille minimale requise pour afficher la boîte de dialogue ; dans le cas contraire, l’accès est automatiquement refusé.
Le contenu qui s’exécute dans le sandbox de sécurité de l’application AIR n’a pas besoin d’autorisation pour accéder au microphone et aucune boîte de dialogue ne s’affiche. Le contenu AIR qui s’exécute en dehors du sandbox de l’application nécessite une autorisation et la boîte de dialogue Confidentialité s’affiche.
Plus d’exemples
Informations complémentaires
Présentation de l’architecture audio
aYo Binitie : mise en œuvre de la fonctionnalité de suppression de l’écho acoustique dans des applications Flash/Flex
Cristophe Coenraets : Notes vocales pour Android
Michael Chaize : AIR, Android et le microphone
Eléments de l’API associés
Propriété | Défini par | ||
---|---|---|---|
activityLevel : Number [lecture seule]
Volume sonore détecté par le microphone. | Microphone | ||
codec : String
Codec à utiliser pour la compression audio. | Microphone | ||
constructor : Object
Référence à l’objet de classe ou à la fonction constructeur d’une occurrence donnée d’un objet. | Object | ||
enableVAD : Boolean
Active la détection de l’activité vocale Speex. | Microphone | ||
encodeQuality : int
Qualité du discours codé lorsque le codec Speex est utilisé. | Microphone | ||
enhancedOptions : MicrophoneEnhancedOptions
Contrôle les options du microphone amélioré. | Microphone | ||
framesPerPacket : int
Nombre d’images de discours Speex transmises dans un paquet (message). | Microphone | ||
gain : Number
Valeur selon laquelle le microphone amplifie le signal. | Microphone | ||
index : int [lecture seule]
Index du microphone, tel qu’indiqué dans le tableau renvoyé par Microphone.names. | Microphone | ||
isSupported : Boolean [statique] [lecture seule]
La propriété isSupported est définie sur true si la classe Microphone est disponible sur la plate-forme actuelle ; dans le cas contraire, elle est définie sur false. | Microphone | ||
muted : Boolean [lecture seule]
Spécifie si l’utilisateur a refusé (true) ou autorisé (false) l’accès au microphone. | Microphone | ||
name : String [lecture seule]
Nom du périphérique de capture audio actuel, tel que renvoyé par le matériel de capture de son. | Microphone | ||
names : Array [statique] [lecture seule]
Tableau de chaînes contenant les noms de tous les périphériques de capture audio disponibles. | Microphone | ||
noiseSuppressionLevel : int
Atténuation maximale du bruit, en dB (nombre négatif), utilisée pour le codeur Speex. | Microphone | ||
permissionStatus : String [statique] [lecture seule]
Déterminez si l’application a été autorisée à utiliser le microphone. | Microphone | ||
rate : int
Taux auquel le microphone capture le son, en kHz. | Microphone | ||
silenceLevel : Number [lecture seule]
Volume sonore requis pour activer le microphone et distribuer l’événement activity. | Microphone | ||
silenceTimeout : int [lecture seule]
Nombre de millisecondes qui s’écoule entre le moment où le microphone arrête la détection du son et le moment où l’événement activity est appelé. | Microphone | ||
soundTransform : flash.media:SoundTransform
Contrôle le son de cet objet Microphone lorsque le mode loopback est activé. | Microphone | ||
useEchoSuppression : Boolean [lecture seule]
Définit true si la fonctionnalité de suppression de l’écho est activée ; false dans le cas contraire. | Microphone |
Méthode | Défini par | ||
---|---|---|---|
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Enregistre un objet écouteur d’événement auprès d’un objet EventDispatcher afin que l’écouteur soit averti d’un événement. | EventDispatcher | ||
Distribue un événement dans le flux d’événements. | EventDispatcher | ||
[statique]
Renvoie une référence à un objet Microphone optimisé capable d’annuler l’écho acoustique. | Microphone | ||
[statique]
Renvoie une référence à un objet Microphone pour capturer des données audio. | Microphone | ||
Vérifie si des écouteurs sont enregistrés auprès de l’objet EventDispatcher pour un type spécifique d’événement. | EventDispatcher | ||
Indique si la propriété spécifiée d’un objet est définie. | Object | ||
Indique si une occurrence de la classe Object figure dans la chaîne de prototype de l’objet spécifié en tant que paramètre. | Object | ||
Indique si la propriété spécifiée existe et est énumérable. | Object | ||
Supprime un écouteur de l’objet EventDispatcher. | EventDispatcher | ||
Demande l’autorisation d’accès au microphone pour l’application. | Microphone | ||
Dirige le flux audio capturé par un microphone vers les haut-parleurs locaux. | Microphone | ||
Définit la disponibilité d’une propriété dynamique pour les opérations en boucle. | Object | ||
Définit le niveau d’entrée minimal devant être considéré comme du son et (éventuellement) la durée de silence indiquant le début du silence. | Microphone | ||
Spécifie s’il convient d’utiliser la fonctionnalité de suppression de l’écho du codec audio. | Microphone | ||
Renvoie la représentation de chaîne de cet objet, formatée selon les paramètres régionaux en vigueur. | Object | ||
Renvoie la représentation sous forme de chaîne de l’objet spécifié. | Object | ||
Renvoie la valeur primitive de l’objet spécifié. | Object | ||
Vérifie si un écouteur d’événement est enregistré auprès de cet objet EventDispatcher ou de ses ancêtres pour le type d’événement spécifié. | EventDispatcher |
activityLevel | propriété |
activityLevel:Number
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Volume sonore détecté par le microphone. Les valeurs gérées sont comprises entre 0 (aucun son n’est détecté) et 100 (un son de grande intensité est détecté). La valeur de cette propriété peut vous aider à déterminer la valeur qu’il convient de transmettre à la méthode Microphone.setSilenceLevel()
.
Si la propriété muted
du microphone est définie sur true
, la valeur de cette propriété est toujours -1.
Implémentation
public function get activityLevel():Number
Valeur émise
PermissionError — L’application ne dispose pas de l’autorisation nécessaire pour utiliser le microphone.
|
Eléments de l’API associés
codec | propriété |
codec:String
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10, AIR 1.5 |
Codec à utiliser pour la compression audio. Les codecs disponibles sont Nellymoser (valeur par défaut) et Speex. La classe d’énumération SoundCodec
contient les différentes valeurs valides pour la propriété codec
.
Si vous utilisez le codec Nellymoser, vous pouvez définir le taux d’échantillonnage à l’aide de la méthode Microphone.rate()
. Si vous utilisez le codec Speex, le taux d’échantillonnage est défini sur 16 kHz.
Speex inclut la détection d’activité vocale (VAD) et réduit automatiquement la bande passante si aucune voix n’est détectée. Lorsque vous utilisez le codec Speex, Adobe vous conseille de définir le niveau de silence sur 0. Pour définir le niveau de silence, utilisez la méthode Microphone.setSilenceLevel()
.
Implémentation
public function get codec():String
public function set codec(value:String):void
Valeur émise
PermissionError — L’application ne dispose pas de l’autorisation nécessaire pour utiliser le microphone.
|
Eléments de l’API associés
enableVAD | propriété |
enableVAD:Boolean
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10.1, AIR 2 |
Active la détection de l’activité vocale Speex.
Implémentation
public function get enableVAD():Boolean
public function set enableVAD(value:Boolean):void
Valeur émise
PermissionError — L’application ne dispose pas de l’autorisation nécessaire pour utiliser le microphone.
|
encodeQuality | propriété |
encodeQuality:int
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10, AIR 1.5 |
Qualité du discours codé lorsque le codec Speex est utilisé. Les valeurs possibles sont comprises entre 0 et 10. La valeur par défaut est 6. Les nombres les plus élevés offrent une plus grande qualité mais consomment davantage de bande passante, comme le montre le tableau suivant. Les valeurs de vitesses de transmission énumérées représentent les vitesses de transmission nettes sans la surcharge de la mise en paquets.
Valeur de Quality | Vitesse de transmission requise (Kbits par seconde) |
---|---|
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 |
Implémentation
public function get encodeQuality():int
public function set encodeQuality(value:int):void
Valeur émise
PermissionError — L’application ne dispose pas de l’autorisation nécessaire pour utiliser le microphone.
|
Eléments de l’API associés
enhancedOptions | propriété |
enhancedOptions:MicrophoneEnhancedOptions
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10.3, AIR 2.7 |
Contrôle les options du microphone amélioré. Pour plus d’informations, voir la classe MicrophoneEnhancedOptions
. Cette propriété est ignorée pour les occurrences de Microphone non améliorées.
Implémentation
public function get enhancedOptions():MicrophoneEnhancedOptions
public function set enhancedOptions(value:MicrophoneEnhancedOptions):void
Valeur émise
PermissionError — L’application ne dispose pas de l’autorisation nécessaire pour utiliser le microphone.
|
Eléments de l’API associés
framesPerPacket | propriété |
framesPerPacket:int
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10, AIR 1.5 |
Nombre d’images de discours Speex transmises dans un paquet (message). La longueur de chaque image est 20 ms. La valeur par défaut est deux images par paquet.
Plus un message comporte d’images Speex, moins la bande passante requise est élevée, mais plus l’envoi du message est retardé. Moins d’images Speex augmente la bande passante, mais réduit le retard.
Implémentation
public function get framesPerPacket():int
public function set framesPerPacket(value:int):void
gain | propriété |
gain:Number
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Valeur selon laquelle le microphone amplifie le signal. Les valeurs valides sont comprises entre 0 et 100. La valeur par défaut est 50.
Implémentation
public function get gain():Number
public function set gain(value:Number):void
Valeur émise
PermissionError — L’application ne dispose pas de l’autorisation nécessaire pour utiliser le microphone.
|
Eléments de l’API associés
index | propriété |
index:int
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Index du microphone, tel qu’indiqué dans le tableau renvoyé par Microphone.names
.
Implémentation
public function get index():int
Valeur émise
PermissionError — L’application ne dispose pas de l’autorisation nécessaire pour utiliser le microphone.
|
Eléments de l’API associés
isSupported | propriété |
isSupported:Boolean
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10.1, AIR 2 |
La propriété isSupported
est définie sur true
si la classe Microphone est disponible sur la plate-forme actuelle ; dans le cas contraire, elle est définie sur false
.
Implémentation
public static function get isSupported():Boolean
muted | propriété |
muted:Boolean
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Spécifie si l’utilisateur a refusé (true
) ou autorisé (false
) l’accès au microphone. Lorsque cette valeur change, un événement status
est distribué. Pour plus d’informations, voir Microphone.getMicrophone()
.
Implémentation
public function get muted():Boolean
Valeur émise
PermissionError — L’application ne dispose pas de l’autorisation nécessaire pour utiliser le microphone.
|
Eléments de l’API associés
name | propriété |
names | propriété |
names:Array
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Tableau de chaînes contenant les noms de tous les périphériques de capture audio disponibles. Les noms sont renvoyés sans qu’il soit nécessaire d’afficher le panneau des paramètres de confidentialité de Flash Player à l’intention de l’utilisateur. Ce tableau indique l’index (commençant à zéro) de chaque périphérique de capture audio, ainsi que le nombre de ces périphériques présents dans le système, par le biais de la propriété Microphone.names.length
. Pour plus d’informations, voir l’entrée de la classe Array.
L’appel de la propriété Microphone.names
exige un examen minutieux du matériel et plusieurs secondes peuvent être nécessaires pour composer le tableau. Dans la plupart des cas, vous pouvez utiliser le microphone par défaut.
Remarque : pour connaître le nom du microphone actif, utilisez la propriété name
.
Implémentation
public static function get names():Array
Eléments de l’API associés
noiseSuppressionLevel | propriété |
noiseSuppressionLevel:int
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10.1, AIR 2 |
Atténuation maximale du bruit, en dB (nombre négatif), utilisée pour le codeur Speex. Si elle est activée, la suppression du bruit est appliquée au son capturé via le microphone avant la compression Speex. Sélectionnez 0 pour désactiver la suppression du bruit. La suppression du bruit est activée par défaut avec une l’atténuation maximale de -30 dB. Cette propriété est ignorée lorsque le codec Nellymoser est sélectionné.
Implémentation
public function get noiseSuppressionLevel():int
public function set noiseSuppressionLevel(value:int):void
Valeur émise
PermissionError — L’application ne dispose pas de l’autorisation nécessaire pour utiliser le microphone.
|
permissionStatus | propriété |
rate | propriété |
rate:int
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Taux auquel le microphone capture le son, en kHz. Les valeurs possibles sont 5, 8, 11, 22 et 44. La valeur par défaut est 8 kHz si votre périphérique de capture audio prend en charge cette valeur. Dans le cas contraire, la valeur par défaut correspond au niveau de capture supérieur à 8 kHz immédiatement disponible et pouvant être pris en charge par votre périphérique de capture audio, généralement 11 kHz.
Remarque : la vitesse réelle diffère légèrement de la valeur rate
, comme indiqué dans le tableau suivant :
Valeur rate | Fréquence actuelle |
---|---|
44 | 44,100 Hz |
22 | 22,050 Hz |
11 | 11,025 Hz |
8 | 8,000 Hz |
5 | 5,512 Hz |
Implémentation
public function get rate():int
public function set rate(value:int):void
Valeur émise
PermissionError — L’application ne dispose pas de l’autorisation nécessaire pour utiliser le microphone.
|
Eléments de l’API associés
silenceLevel | propriété |
silenceLevel:Number
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Volume sonore requis pour activer le microphone et distribuer l’événement activity
. La valeur par défaut est 10.
Implémentation
public function get silenceLevel():Number
Valeur émise
PermissionError — L’application ne dispose pas de l’autorisation nécessaire pour utiliser le microphone.
|
Eléments de l’API associés
silenceTimeout | propriété |
silenceTimeout:int
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Nombre de millisecondes qui s’écoule entre le moment où le microphone arrête la détection du son et le moment où l’événement activity
est distribué. La valeur par défaut est 2 000 (2 secondes).
Pour définir cette valeur, utilisez la méthode Microphone.setSilenceLevel()
.
Implémentation
public function get silenceTimeout():int
Valeur émise
PermissionError — L’application ne dispose pas de l’autorisation nécessaire pour utiliser le microphone.
|
Eléments de l’API associés
soundTransform | propriété |
soundTransform:flash.media:SoundTransform
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Contrôle le son de cet objet Microphone lorsque le mode loopback est activé.
Implémentation
public function get soundTransform():flash.media:SoundTransform
public function set soundTransform(value:flash.media:SoundTransform):void
Valeur émise
PermissionError — L’application ne dispose pas de l’autorisation nécessaire pour utiliser le microphone.
|
useEchoSuppression | propriété |
useEchoSuppression:Boolean
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Définit true
si la fonctionnalité de suppression de l’écho est activée ; false
dans le cas contraire. La valeur par défaut est false
sauf si l’utilisateur sélectionne l’option Réduire l’écho dans le panneau Paramètres du microphone de Flash Player.
Implémentation
public function get useEchoSuppression():Boolean
Eléments de l’API associés
getEnhancedMicrophone | () | méthode |
public static function getEnhancedMicrophone(index:int = -1):Microphone
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10.3, AIR 2.7 |
Renvoie une référence à un objet Microphone optimisé capable d’annuler l’écho acoustique. Utilisez l’annulation de l’écho acoustique pour créer des applications audio/vidéo qui n’exigent pas l’utilisation d’un casque.
Le paramètre index
des méthodes Microphone.getEnhancedMicrophone()
et Microphone.getMicrophone()
fonctionne de la même façon.
Pour utiliser cette méthode sur Android, ajoutez l’autorisation MODIFY_AUDIO_SETTINGS
sous l’élément manifest Additions Android du descripteur d’application.
Important : vous pouvez, à un moment donné, disposer d’une seule occurrence de microphone amélioré. Toutes les autres occurrences de Microphone cessent de fournir des données audio et reçoivent un événement StatusEvent
dont la propriété de code
est Microphone.Unavailable
. En cas d’échec d’initialisation de l’amélioration du son, les appels à cette méthode renvoient null
, la définition d’une valeur pour Microphone.enhancedOptions
n’a aucun effet et toutes les occurrences existantes de Microphone fonctionnent comme avant.
Pour configurer un objet Microphone amélioré, définissez la propriété Microphone.enhancedOptions
. Le code suivant utilise un objet Microphone amélioré et l’annulation de l’écho acoustique en duplex intégral dans un test local :
var mic:Microphone = Microphone.getEnhancedMicrophone(); var options:MicrophoneEnhancedOptions = new MicrophoneEnhancedOptions(); options.mode = MicrophoneEnhancedMode.FULL_DUPLEX; mic.enhancedOptions = options; mic.setLoopBack(true);
La méthode setUseEchoSuppression()
est ignorée lors de l’utilisation de l’annulation de l’écho acoustique.
Lorsqu’un fichier SWF tente d’accéder à l’objet renvoyé par la méthode Microphone.getEnhancedMicrophone()
, par exemple lorsque vous appelez NetStream.attachAudio()
, Flash Player affiche une boîte de dialogue Confidentialité qui permet à l’utilisateur d’autoriser ou de refuser l’accès au microphone (assurez-vous que la taille de votre scène est d’au moins 215 x 138 pixels ; il s’agit de la taille minimale requise par Flash Player pour afficher cette boîte de dialogue).
Paramètres
index:int (default = -1 ) — Index du microphone.
|
Microphone — Une référence à un objet Microphone pour capturer des données audio. En cas d’échec d’initialisation de l’amélioration du son, renvoie null .
|
Eléments de l’API associés
getMicrophone | () | méthode |
public static function getMicrophone(index:int = -1):Microphone
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Renvoie une référence à un objet Microphone pour capturer des données audio. Pour commencer la capture du flux audio, vous devez relier l’objet Microphone à un objet NetStream (voir NetStream.attachAudio()
).
Plusieurs appels à Microphone.getMicrophone()
font référence au même microphone. Ainsi, si votre code contient les lignes mic1 = Microphone.getMicrophone()
et mic2 = Microphone.getMicrophone()
, les lignes mic1
et mic2
font référence au même microphone (par défaut).
En général, il est préférable de ne pas transmettre de valeur pour index
. Il vous suffit d’appeler la méthode air.Microphone.getMicrophone()
pour renvoyer une référence au microphone par défaut. La section Paramètres du microphone du panneau Paramètres Adobe Flash Player permet à l’utilisateur de spécifier le microphone par défaut que l’application doit utiliser. (Pour accéder au panneau Paramètres Adobe Flash Player, l’utilisateur doit cliquer avec le bouton droit de la souris sur le contenu de Flash Player s’exécutant dans un navigateur Web.) Si vous transmettez une valeur pour index
, vous pouvez référencer un microphone différent de celui que l’utilisateur a choisi. Vous pouvez utiliser index
en de rares occasions, par exemple si votre application capture un flux audio à partir de deux microphones simultanément. Le contenu s’exécutant dans Adobe AIR utilise également le microphone par défaut défini dans Flash Player.
Utilisez la propriété Microphone.index
pour obtenir la valeur d’index de l’objet Microphone actif. Vous pouvez ensuite transmettre cette valeur aux autres méthodes de la classe Microphone.
Lorsqu’un fichier SWF tente d’accéder à l’objet renvoyé par la méthode Microphone.getMicrophone()
, par exemple lorsque vous appelez NetStream.attachAudio()
, Flash Player affiche une boîte de dialogue Confidentialité qui permet à l’utilisateur d’autoriser ou de refuser l’accès au microphone (assurez-vous que la taille de votre scène est d’au moins 215 x 138 pixels ; il s’agit de la taille minimale requise par Flash Player pour afficher cette boîte de dialogue).
Lorsque l’utilisateur répond à cette boîte de dialogue, un événement status
indiquant la réponse de l’utilisateur est distribué. Vous pouvez également vérifier la propriété Microphone.muted
pour déterminer si l’utilisateur a autorisé ou interdit l’accès au microphone.
Si Microphone.getMicrophone()
renvoie la valeur null
, cela signifie que le microphone est utilisé par une autre application ou qu’aucun microphone n’est installé sur le système. Pour déterminer si un microphone est installé, utilisez Microphones.names.length
. Pour afficher le panneau Paramètres du microphone de Flash Player, qui permet à l’utilisateur de choisir le microphone référencé par Microphone.getMicrophone()
, utilisez Security.showSettings()
.
Paramètres
index:int (default = -1 ) — Index du microphone.
|
Microphone — Une référence à un objet Microphone pour capturer des données audio.
|
Evénements
status: — Distribué lorsqu’un microphone publie son état. Si la propriété code est réglée sur Microphone.Muted , l’utilisateur a interdit au fichier SWF d’accéder à son microphone. Si la propriété code est réglée sur Microphone.Unmuted , l’utilisateur a autorisé le fichier SWF à accéder à son microphone.
|
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
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 | () | méthode |
public function requestPermission():void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 24.0 |
Demande l’autorisation d’accès au microphone pour l’application.
Evénements
PermissionStatus: — distribué lorsque l’autorisation demandée est accordée/refusée par l’utilisateur.
|
setLoopBack | () | méthode |
public function setLoopBack(state:Boolean = true):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Dirige le flux audio capturé par un microphone vers les haut-parleurs locaux.
Paramètres
state:Boolean (default = true )
|
Valeur émise
PermissionError — L’application ne dispose pas de l’autorisation nécessaire pour utiliser le microphone.
|
setSilenceLevel | () | méthode |
public function setSilenceLevel(silenceLevel:Number, timeout:int = -1):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Définit le niveau d’entrée minimal devant être considéré comme du son et (éventuellement) la durée de silence indiquant le début du silence.
- Pour empêcher le microphone de détecter le son, attribuez la valeur 100 au paramètre
silenceLevel
; dans ce cas, l’événementactivity
n’est jamais distribué. - Pour déterminer le volume sonore actuellement détecté par le microphone, utilisez
Microphone.activityLevel
.
Speex inclut la détection d’activité vocale (VAD) et réduit automatiquement la bande passante si aucune voix n’est détectée. Lorsque vous utilisez le codec Speex, Adobe vous conseille de définir le niveau de silence sur 0.
La détection de l’activité est la capacité à détecter les niveaux audio indiquant qu’une personne est en train de parler. Lorsqu’une personne ne parle pas, il est possible d’économiser de la bande passante car il n’est pas nécessaire d’envoyer le flux audio correspondant. Ces informations peuvent également être utilisées à des fins de réponse visuelle afin que les utilisateurs (ou d’autres personnes) sachent qu’ils sont silencieux.
Les valeurs de silence correspondent directement aux valeurs d’activité. La valeur d’activité 0 est associée au silence total. La valeur d’activité 100 est associée à un bruit fort constant (maximum enregistrable selon le paramètre de gain actuel). Une fois le gain ajusté convenablement, votre valeur d’activité est inférieure à votre valeur de silence lorsque vous ne parlez pas. Inversement, lorsque vous parlez, la valeur d’activité dépasse celle du silence.
Cette méthode est similaire à la méthode Camera.setMotionLevel()
; ces deux méthodes sont utilisées pour spécifier à quel moment il convient de distribuer l’événement activity
. Toutefois, leur impact sur la publication des flux diffère de manière significative :
Camera.setMotionLevel()
est conçu pour détecter le mouvement et n’a aucune incidence sur l’utilisation de la bande passante. La vidéo est envoyée peu importe qu’un flux vidéo détecte du mouvement ou non.Microphone.setSilenceLevel()
est conçu pour optimiser la bande passante. Lorsqu’un flux audio est considéré comme étant silencieux, aucune donnée audio n’est envoyée. En revanche, un message unique indiquant le début du silence est envoyé.
Paramètres
silenceLevel:Number — Volume sonore requis pour activer le microphone et distribuer l’événement activity . Les valeurs gérées sont comprises entre 0 et 100.
| |
timeout:int (default = -1 ) — Nombre de millisecondes qui doit s’écouler sans activité avant que Flash Player ou Adobe AIR considère que le son a cessé pour distribuer l’événement dispatch . La valeur par défaut est 2 000 (2 secondes). (Remarque : la valeur par défaut indiquée dans la signature, -1, est une valeur interne qui indique à Flash Player ou Adobe AIR d’utiliser 2 000).
|
Valeur émise
PermissionError — L’application ne dispose pas de l’autorisation nécessaire pour utiliser le microphone.
|
Eléments de l’API associés
setUseEchoSuppression | () | méthode |
public function setUseEchoSuppression(useEchoSuppression:Boolean):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Spécifie s’il convient d’utiliser la fonctionnalité de suppression de l’écho du codec audio. La valeur par défaut est false
sauf si l’utilisateur sélectionne l’option Réduire l’écho dans le panneau Paramètres du microphone de Flash Player.
La suppression de l’écho vise à réduire les effets de la réaction acoustique créée lorsque le son qui sort du haut-parleur est capté par le microphone sur un même système. (Elle diffère de l’annulation de l’écho acoustique qui supprime entièrement la réaction acoustique. La méthode setUseEchoSuppression()
est ignorée lorsque vous appelez la méthode getEnhancedMicrophone()
en vue d’utiliser l’annulation de l’écho acoustique.)
En général, il est recommandé de supprimer l’écho lorsque le son capturé est lu via les haut-parleurs, et non via le casque. Si votre fichier SWF autorise les utilisateurs à spécifier le périphérique de sortie audio, il peut être souhaitable d’appeler Microphone.setUseEchoSuppression(true)
s’ils précisent qu’ils utilisent les haut-parleurs et qu’ils ont également l’intention d’utiliser le microphone.
Les utilisateurs peuvent également ajuster ces paramètres dans le panneau Paramètres du microphone de Flash Player.
Paramètres
useEchoSuppression:Boolean — Valeur booléenne indiquant s’il est nécessaire d’utiliser la fonctionnalité de suppression de l’écho (true ) ou pas (false ).
|
Valeur émise
PermissionError — L’application ne dispose pas de l’autorisation nécessaire pour utiliser le microphone.
|
Eléments de l’API associés
Security.showSettings()
affiche la boîte de dialogue Flash Player qui demande l’autorisation d’accéder au microphone de l’utilisateur. L’appel à setLoopBack(true)
réachemine l’entrée sur le haut-parleur local de sorte que vous pouvez entendre le son tandis que vous exécutez l’exemple.
Deux écouteurs surveillent les événements activity
et status
. L’événement activity
est distribué au début et à la fin (si elle existe) de la session, et il est capturé par la méthode activityHandler()
qui assure le suivi des informations sur l’événement. L’événement status
est distribué si l’objet microphone joint signale des informations d’état ; sa capture et son suivi sont assurés par le biais de la méthode statusHandler()
.
Remarque : un microphone doit être branché sur votre ordinateur pour le bon déroulement de cet exemple.
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, 09:30 AM Z