Package | flash.media |
Classe | public final class Camera |
Héritage | Camera EventDispatcher Object |
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Une occurrence de Camera permet ce capturer de la vidéo au format paysage. Sur les périphériques prenant en charge le changement d’orientation de l’écran, tels que les téléphones portables, un objet Video joint à la caméra affiche uniquement la vidéo filmée verticalement en orientation paysage. Par conséquent, les applications mobiles doivent utiliser l’orientation paysage lors de l’affichage vidéo et ne doivent pivoter automatiquement.
Sur iOS, la vidéo de la caméra avant est mise en miroir. Elle ne l’est pas sur Android.
Sur les périphériques mobiles munis d’une caméra autofocus, l’autofocus est automatiquement activé. Si l’appareil photo ne prend pas en charge l’autofocus continu (ce qui est le cas pour de nombreux périphériques mobiles), l’appareil photo est mis au point lorsque l’objet Camera est associé à un flux vidéo et chaque fois que la méthode setMode()
est appelée. Sur les ordinateurs de bureau, le comportement de l’autofocus dépend du pilote et des paramètres de la caméra.
Dans le cas d’une application AIR sur Android et iOS, la caméra ne capture pas les vidéos si l’application AIR n’est pas l’application active au premier plan. Il est en outre possible que les connexions de flux soient perdues lorsque l’application se trouve dans l’arrière-plan. Sur iOS, il est impossible d’afficher la caméra vidéo lorsqu’une application utilise le mode de rendu sur GPU. Il est toutefois possible de diffuser en continu la caméra vidéo sur un serveur.
Prise en charge du profil AIR : cette fonctionnalité 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. Notez que pour les périphériques AIR pour TV, Camera.isSupported
est true
, mais Camera.getCamera()
renvoie toujours null
. L’accès à la caméra n’est pas pris en charge dans les navigateurs mobiles.
Pour plus d’informations sur la capture audio, voir la classe Microphone.
Important : le moteur d’exécution affiche une boîte de dialogue de confidentialité qui permet à l’utilisateur d’autoriser ou de refuser l’accès à la caméra. Assurez-vous que la taille de la fenêtre de votre application soit d’au moins 215 x 138 pixels, taille minimale requise par Flash pour afficher cette boîte de dialogue.
Pour créer ou référencer un objet Camera, utilisez la méthode getCamera()
.
Plus d’exemples
Vérification de la présence de caméras
Détection de l’autorisation d’accéder à la caméra
Optimisation de la qualité des vidéos de la caméra
Gestion de l’état de la caméra
Informations complémentaires
Présentation des formats vidéo
Compatibilité de Flash Player et AIR avec les fichiers vidéo codés
Présentation des formats de fichiers vidéo Adobe F4V et FLV
Rubriques avancées relatives aux fichiers vidéo
Exemple vidéo : Video Jukebox
Présentation de la classe Camera
Affichage du contenu de la caméra
Conception d’une application gérant une caméra locale
Cristophe Coenraets : Conversation vidéo pour Android en 30 lignes de code
Michael Chaize : Android, AIR et la caméra
Eléments de l’API associés
Propriété | Défini par | ||
---|---|---|---|
activityLevel : Number [lecture seule]
Quantité de mouvement détecté par la caméra. | Camera | ||
bandwidth : int [lecture seule]
Quantité maximale de bande passante pouvant être utilisée par la source vidéo sortante actuelle, en octets. | Camera | ||
constructor : Object
Référence à l’objet de classe ou à la fonction constructeur d’une occurrence donnée d’un objet. | Object | ||
currentFPS : Number [lecture seule]
Cadence à laquelle la caméra capture des données, en images par seconde. | Camera | ||
fps : Number [lecture seule]
Fréquence maximale à laquelle la caméra peut capturer des données, en images par seconde. | Camera | ||
height : int [lecture seule]
Hauteur de capture actuelle, en pixels. | Camera | ||
index : int [lecture seule]
Index de base zéro qui spécifie la position de la caméra dans le tableau Camera.names, qui répertorie toutes les caméras disponibles. | Camera | ||
isSupported : Boolean [statique] [lecture seule]
La propriété isSupported est définie sur true si la classe Camera est disponible sur la plate-forme actuelle ; dans le cas contraire, elle est définie sur false. | Camera | ||
keyFrameInterval : int [lecture seule]
Nombre d’images (appelées images-clés) qui sont transmises intégralement sans être interpolées par l’algorithme de compression vidéo. | Camera | ||
loopback : Boolean [lecture seule]
Indique si les données capturées par la caméra et visionnées localement sont compressées et décompressées (true), comme elles le seraient pour une transmission en directe par le biais de Flash Media Server, ou non compressées (false). | Camera | ||
motionLevel : int [lecture seule]
Quantité de mouvement requis pour invoquer l’événement activity. | Camera | ||
motionTimeout : int [lecture seule]
Nombre de millisecondes qui s’écoule entre le moment où la caméra arrête la détection du mouvement et le moment où l’événement activity est appelé. | Camera | ||
muted : Boolean [lecture seule]
Valeur booléenne qui indique si l’utilisateur a refusé (true) ou autorisé (false) l’accès à la caméra dans la boîte de dialogue de confidentialité de Flash Player. | Camera | ||
name : String [lecture seule]
Nom de la caméra en cours, tel que renvoyé par le matériel de la caméra. | Camera | ||
names : Array [statique] [lecture seule]
Tableau de chaînes contenant les noms de toutes les caméras disponibles. | Camera | ||
permissionStatus : String [statique] [lecture seule]
Déterminez si l’application a été autorisée à utiliser la caméra. | Camera | ||
position : String [lecture seule]
Spécifie le côté d’un périphérique sur lequel la caméra se trouve. | Camera | ||
quality : int [lecture seule]
Niveau de qualité d’image requis, tel que déterminé par le taux de compression appliqué à chaque image vidéo. | Camera | ||
width : int [lecture seule]
Largeur de capture actuelle, en pixels. | Camera |
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 | ||
Remplit un tableau d’octets à partir d’une zone rectangulaire de données de pixels. Ecrit un entier non signé (une valeur de pixel non multipliée de 32 bits) pour chaque pixel dans le tableau d’octets. | Camera | ||
Remplit un vecteur à partir d’une zone rectangulaire de données de pixels. | Camera | ||
Distribue un événement dans le flux d’événements. | EventDispatcher | ||
Copie la dernière image sur une image bitmap. | Camera | ||
[statique]
Renvoie une référence à un objet Camera pour capturer de la vidéo. | Camera | ||
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 à la caméra pour l’application. | Camera | ||
Spécifie les images qui sont transmises intégralement (images-clés) sans être interpolées par l’algorithme de compression vidéo. | Camera | ||
Indique s’il est nécessaire d’utiliser un flux vidéo compressé pour un visionnage local des données reçues par la caméra. | Camera | ||
Définit le mode de capture de la caméra sur le mode natif qui remplit le mieux les conditions requises. | Camera | ||
Spécifie la quantité (intensité) de mouvement requise pour distribuer l’événement activity. | Camera | ||
Définit la disponibilité d’une propriété dynamique pour les opérations en boucle. | Object | ||
Définit la quantité maximale de bande passante par seconde ou la qualité d’image requise pour les données vidéo sortantes actuelles. | Camera | ||
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 |
Evénement | Synthèse | Défini par | ||
---|---|---|---|---|
[Evénement de diffusion] Distribué lorsque l’application Flash Player obtient le focus du système d’exploitation et devient active. | EventDispatcher | |||
Distribué lorsqu’une caméra commence ou termine une session. | Camera | |||
[Evénement de diffusion] Distribué lorsque l’application Flash Player ou AIR perd le focus du système d’exploitation et devient inactive. | EventDispatcher | |||
Distribué lorsque l’application demande l’autorisation d’utiliser la caméra sur le périphérique. | Camera | |||
Distribué lorsqu’une caméra publie son état. | Camera | |||
Envoyé après qu’un nouveau cadre de caméra a été traité par le moteur d’exécution et est disponible pour la copie. | Camera |
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 |
Quantité de mouvement détecté par la caméra. Les valeurs gérées sont comprises entre 0 (aucun mouvement n’est détecté) et 100 (une grande quantité de mouvement est détectée). La valeur de cette propriété peut vous aider à déterminer s’il est nécessaire de transmettre un paramètre à la méthode setMotionLevel()
.
Si la caméra est disponible mais qu’elle n’est pas encore utilisée parce que la méthode Video.attachCamera()
n’a pas été appelée, cette propriété est définie sur -1.
Si vous diffusez en continu de la vidéo non compressée en local seulement, cette propriété n’est définie que si vous avez affecté une fonction au gestionnaire d’événement. Dans le cas contraire, elle n’est pas définie.
Implémentation
public function get activityLevel():Number
Valeur émise
PermissionError — L’application ne dispose pas de l’autorisation nécessaire pour utiliser la caméra.
|
Eléments de l’API associés
bandwidth | propriété |
bandwidth:int
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Quantité maximale de bande passante pouvant être utilisée par la source vidéo sortante actuelle, en octets. Une valeur de 0 signifie que la source peut utiliser autant de bande passante que nécessaire pour conserver la qualité d’image voulue.
Pour définir cette propriété, utilisez la méthode setQuality()
.
Implémentation
public function get bandwidth():int
Valeur émise
PermissionError — L’application ne dispose pas de l’autorisation nécessaire pour utiliser la caméra.
|
Eléments de l’API associés
currentFPS | propriété |
currentFPS:Number
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Cadence à laquelle la caméra capture des données, en images par seconde. Cette propriété ne peut pas être définie ; toutefois, vous pouvez utiliser la méthode setMode()
pour définir une propriété connexe, fps
, qui spécifie la cadence maximale à laquelle vous souhaitez que la caméra capture les données.
Implémentation
public function get currentFPS():Number
Valeur émise
PermissionError — L’application ne dispose pas de l’autorisation nécessaire pour utiliser la caméra.
|
Eléments de l’API associés
fps | propriété |
fps:Number
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Fréquence maximale à laquelle la caméra peut capturer des données, en images par seconde. La fréquence maximale possible dépend des capacités de la caméra ; cette fréquence peut ne pas être atteinte.
- Pour définir une valeur souhaitée pour cette propriété, utilisez la méthode
setMode()
. - Pour déterminer la cadence à laquelle la caméra capture actuellement les données, utilisez la propriété
currentFPS
.
Implémentation
public function get fps():Number
Valeur émise
PermissionError — L’application ne dispose pas de l’autorisation nécessaire pour utiliser la caméra.
|
Eléments de l’API associés
height | propriété |
height:int
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Hauteur de capture actuelle, en pixels. Pour définir une valeur à cette propriété, utilisez la méthode setMode()
.
Implémentation
public function get height():int
Valeur émise
PermissionError — L’application ne dispose pas de l’autorisation nécessaire pour utiliser la caméra.
|
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 de base zéro qui spécifie la position de la caméra dans le tableau Camera.names
, qui répertorie toutes les caméras disponibles.
Implémentation
public function get index():int
Valeur émise
PermissionError — L’application ne dispose pas de l’autorisation nécessaire pour utiliser la caméra.
|
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 Camera 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
keyFrameInterval | propriété |
keyFrameInterval:int
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Nombre d’images vidéos (appelées images-clés) transmises intégralement sans être interpolées par l’algorithme de compression vidéo. La valeur par défaut, 15, indique que chaque quinzième image est une image-clé. Une valeur de 1 signifie que chaque image est une image-clé. Les valeurs autorisées vont de 1 à 300.
Implémentation
public function get keyFrameInterval():int
Valeur émise
PermissionError — L’application ne dispose pas de l’autorisation nécessaire pour utiliser la caméra.
|
Eléments de l’API associés
loopback | propriété |
loopback:Boolean
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Indique si les données capturées par la caméra et visionnées localement sont compressées et décompressées (true
), comme elles le seraient pour une transmission en directe par le biais de Flash Media Server, ou non compressées (false
). La valeur par défaut est false
.
Le flux compressé est utile pour les tests, par exemple pour obtenir un aperçu des paramètres de qualité vidéo, mais son coût de traitement est important. L’affichage local est compressé, modifié pour être transmis comme il le serait sur une connexion directe, puis décompressé pour l’affichage local.
Pour définir cette valeur, utilisez Camera.setLoopback()
. Pour définir le taux de compression utilisé lorsque vous réglez cette propriété sur true, utilisez Camera.setQuality()
.
Implémentation
public function get loopback():Boolean
Valeur émise
PermissionError — L’application ne dispose pas de l’autorisation nécessaire pour utiliser la caméra.
|
Eléments de l’API associés
motionLevel | propriété |
motionLevel:int
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Quantité de mouvement requis pour invoquer l’événement activity
. Les valeurs gérées sont comprises entre 0 et 100. La valeur par défaut est 50.
La vidéo peut être affichée quelle que soit la valeur de la propriété motionLevel
. Pour plus d’informations, voir l’entrée setMotionLevel()
.
Implémentation
public function get motionLevel():int
Valeur émise
PermissionError — L’application ne dispose pas de l’autorisation nécessaire pour utiliser la caméra.
|
Eléments de l’API associés
motionTimeout | propriété |
motionTimeout: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ù la caméra arrête la détection du mouvement et le moment où l’événement activity
est appelé. La valeur par défaut est 2 000 (2 secondes).
Pour définir cette valeur, utilisez setMotionLevel()
.
Implémentation
public function get motionTimeout():int
Valeur émise
PermissionError — L’application ne dispose pas de l’autorisation nécessaire pour utiliser la caméra.
|
Eléments de l’API associés
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 |
Valeur booléenne qui indique si l’utilisateur a refusé (true
) ou autorisé (false
) l’accès à la caméra dans la boîte de dialogue de confidentialité de Flash Player. Lorsque cette valeur change, l’événement status
est distribué.
Implémentation
public function get muted():Boolean
Valeur émise
PermissionError — L’application ne dispose pas de l’autorisation nécessaire pour utiliser la caméra.
|
Eléments de l’API associés
name | propriété |
name:String
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Nom de la caméra en cours, tel que renvoyé par le matériel de la caméra.
Implémentation
public function get name():String
Valeur émise
PermissionError — L’application ne dispose pas de l’autorisation nécessaire pour utiliser la caméra.
|
Eléments de l’API associés
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 toutes les caméras disponibles. L’accès à ce tableau n’affiche pas la boîte de dialogue de confidentialité de Flash Player. Ce tableau indique l’index de base zéro de chaque caméra et le nombre de caméras présentes sur le système (via names.length
).
L’appel de la propriété names
implique un examen minutieux du matériel. Dans la plupart des cas, vous pouvez utiliser la caméra par défaut.
Implémentation
public static function get names():Array
Valeur émise
PermissionError — L’application ne dispose pas de l’autorisation nécessaire pour utiliser la caméra.
|
Eléments de l’API associés
permissionStatus | propriété |
position | propriété |
position:String
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 3.0 |
Spécifie le côté d’un périphérique sur lequel la caméra se trouve.
Utilisez la propriété position
pour déterminer si la caméra sur un périphérique mobile se trouve à l’avant ou à l’arrière du périphérique. La fonction suivante vérifie chaque caméra disponible jusqu’à ce qu’il détecte une caméra avec la position souhaitée. Si aucune caméra ne possède la position souhaitée, la caméra par défaut est renvoyée.
function getCamera( position:String ):Camera { var camera:Camera; var cameraCount:uint = Camera.names.length; for ( var i:uint = 0; i < cameraCount; ++i ) { camera = Camera.getCamera( String(i) ); if ( camera.position == position ) return camera; } return Camera.getCamera();
Sur les périphériques mobiles, la position de la caméra est soit CameraPosition.FRONT
soit CameraPosition.BACK
. S’il s’avère impossible de déterminer la position de la caméra, la position est signalée comme suit : CameraPosition.UNKNOWN
. Sur les plates-formes de bureau, la position est toujours CameraPosition.UNKNOWN
.
Les constantes pour les valeurs valides de cette propriété sont définies dans la classe CameraPosition.
Implémentation
public function get position():String
Valeur émise
PermissionError — L’application ne dispose pas de l’autorisation nécessaire pour utiliser la caméra.
|
Eléments de l’API associés
quality | propriété |
quality:int
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Niveau de qualité d’image requis, tel que déterminé par le taux de compression appliqué à chaque image vidéo. Les valeurs de qualité acceptables sont comprises entre 1 (qualité la plus médiocre, compression maximale) et 100 (qualité optimale, pas de compression). La valeur par défaut est 0, ce qui signifie que la qualité de l’image peut varier si nécessaire pour éviter de dépasser la bande passante disponible.
Pour définir cette propriété, utilisez la méthode setQuality()
.
Implémentation
public function get quality():int
Valeur émise
PermissionError — L’application ne dispose pas de l’autorisation nécessaire pour utiliser la caméra.
|
Eléments de l’API associés
width | propriété |
width:int
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Largeur de capture actuelle, en pixels. Pour définir une valeur souhaitée pour cette propriété, utilisez la méthode setMode()
.
Implémentation
public function get width():int
Valeur émise
PermissionError — L’application ne dispose pas de l’autorisation nécessaire pour utiliser la caméra.
|
Eléments de l’API associés
copyToByteArray | () | méthode |
public function copyToByteArray(rect:Rectangle, destination:ByteArray):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 11.4, AIR 3.4 |
Remplit un tableau d’octets à partir d’une zone rectangulaire de données de pixels
Écrit un entier non signé (valeur de pixel non multipliée 32 bits) pour chaque pixel dans le tableau d’octets. Le tableau est redimensionné selon le nombre d’octets nécessaire pour contenir tous les pixels.
Paramètres
rect:Rectangle — Zone rectangulaire de l’objet BitmapData en cours.
| |
destination:ByteArray — ByteArray représentant les pixels dans le rectangle spécifié.
|
Valeur émise
PermissionError — L’application ne dispose pas de l’autorisation nécessaire pour utiliser la caméra.
| |
TypeError — Le paramètre rect est défini sur null.
| |
TypeError — La destination est nulle.
|
Eléments de l’API associés
copyToVector | () | méthode |
public function copyToVector(rect:Rectangle, destination:Vector.<uint>):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 11.4, AIR 3.4 |
Remplit un vecteur à partir d’une zone rectangulaire de données de pixels.
Ecrit un entier non signé (valeur de pixel non multipliée de 32 bits) pour chaque pixel dans le vecteur. Le vecteur est redimensionné selon le nombre d’entrées nécessaire pour contenir tous les pixels.
Paramètres
rect:Rectangle — Zone rectangulaire de l’objet BitmapData en cours.
| |
destination:Vector.<uint> — Un vecteur.<uint> représentant les pixels dans le rectangle spécifié.
|
Valeur émise
PermissionError — L’application ne dispose pas de l’autorisation nécessaire pour utiliser la caméra.
| |
TypeError — Le paramètre rect est défini sur null.
| |
TypeError — La destination est nulle.
|
Eléments de l’API associés
drawToBitmapData | () | méthode |
public function drawToBitmapData(destination:BitmapData):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 11.4, AIR 3.4 |
Copie la dernière image sur une image bitmap.
Cette méthode copie le contenu de la dernière image sur une occurrence de BitmapData.
Paramètres
destination:BitmapData — Occurrence de l’objet BitmapData devant contenir la dernière image.
|
Valeur émise
ArgumentError — kInvalidBitmapDataError si la destination est trop petite
|
Eléments de l’API associés
getCamera | () | méthode |
public static function getCamera(name:String = null):Camera
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 Camera pour capturer de la vidéo. Pour commencer la capture de la vidéo, vous devez relier l’objet Camera à un objet vidéo (voir Video.attachCamera()
). Pour transmettre la vidéo à Flash Media Server, appelez NetStream.attachCamera()
pour relier l’objet Camera à un objet NetStream.
Plusieurs appels de la méthode getCamera()
référencent le même pilote de caméra. Ainsi, si votre script contient du code comme firstCam:Camera = getCamera()
et secondCam:Camera = getCamera()
, alors firstCam
et secondCam
font référence à une même caméra, qui est la caméra par défaut de l’utilisateur.
Sur les périphériques mobiles munis d’une caméra arrière et frontale, il est uniquement possible de capturer des vidéos à partir d’une seule caméra à la fois.
En général, évitez de transmettre la valeur du paramètre name
; contentez-vous d’utiliser getCamera()
pour renvoyer une référence à la caméra par défaut. L’utilisateur peut spécifier la caméra par défaut devant être utilisée via le panneau Paramètres de la caméra (comme indiqué plus bas dans cette section).
Vous ne pouvez pas utiliser ActionScript pour définir un paramètre d’autorisation ou de refus pour l’accès à la caméra, mais vous pouvez afficher la boîte de dialogue de configuration de la caméra des paramètres d’Adobe Flash Player dans laquelle l’utilisateur peut définir l’autorisation de la caméra. Lorsqu’un fichier SWF utilisant la méthode attachCamera()
tente d’associer la caméra renvoyée par la méthode getCamera()
à un objet Video ou NetStream, Flash Player affiche une boîte de dialogue qui permet à l’utilisateur d’autoriser ou de refuser l’accès à la caméra (vérifiez la taille de la fenêtre de votre application qui doit être au moins de 215 x 138 pixels, taille minimale requise par Flash Player pour afficher la boîte de dialogue). Lorsque l’utilisateur répond à la boîte de dialogue de configuration de la caméra, Flash Player renvoie un objet information dans l’événement status
qui précise la réponse de l’utilisateur : Camera.muted
indique que l’utilisateur a refusé l’accès à une caméra ; Camera.unmuted
qu’il en a autorisé l’accès. Pour déterminer si l’utilisateur a refusé ou autorisé l’accès à la caméra sans traiter l’événement status
, utilisez la propriété muted
.
Dans Flash Player, l’utilisateur peut spécifier des paramètres de confidentialité permanents pour un domaine spécifique. Pour ce faire, il lui suffit de cliquer sur le bouton droit de la souris (Windows et Linux) ou de cliquer sur le bouton droit de la souris tout en maintenant la touche Contrôle enfoncée (Macintosh) sur un fichier SWF en cours de lecture, de sélectionner Paramètres, d’ouvrir la boîte de dialogue Confidentialité, puis de sélectionner Mémoriser. Si l’utilisateur sélectionne Mémoriser, Flash Player ne l’invite plus à autoriser ou refuser l’accès à votre caméra des fichiers SWF de ce domaine.
Remarque : la méthode attachCamera()
n’invoque pas la boîte de dialogue permettant d’autoriser ou de refuser l’accès à la caméra si l’utilisateur a refusé l’accès en sélectionnant Mémoriser dans la boîte de dialogue Paramètres de Flash Player. Dans ce cas, vous pouvez demander à l’utilisateur de modifier le paramètre d’autorisation ou de refus en affichant le panneau de confidentialité de Flash Player pour l’utilisateur à l’aide de Security.showSettings(SecurityPanel.PRIVACY)
.
Si getCamera()
renvoie la valeur null
, cela signifie que la caméra est utilisée par une autre application ou qu’aucune caméra n’est installée sur le système. Pour déterminer si une caméra est installée, utilisez la propriété names.length
. Pour afficher le panneau Paramètres de la caméra de Flash Player qui permet à l’utilisateur de choisir la caméra à référencer par getCamera()
, utilisez Security.showSettings(SecurityPanel.CAMERA)
.
L’analyse du matériel à la recherche de caméras exige un certain temps. Lorsque le moteur d’exécution détecte au moins une caméra, le matériel n’est plus analysé pendant la durée de vie de l’occurrence du lecteur. Cependant, si le moteur d’exécution ne détecte pas de caméra, il effectue une analyse à chaque appel de getCamera
. Cela est particulièrement pratique si la caméra est désactivée. Si votre fichier SWF contient un bouton Réessayer qui appelle getCamera
, Flash Player peut localiser la caméra sans que l’utilisateur ne soit obligé de redémarrer le fichier SWF.
Paramètres
name:String (default = null ) — Spécifie la caméra à sélectionner, telle qu’elle est désignée à partir du tableau renvoyé par la propriété names . Dans la plupart des cas, omettez ce paramètre pour sélectionner la caméra par défaut. Pour spécifier une valeur pour ce paramètre, utilisez la représentation de chaîne de la position d’index de base zéro dans le tableau Camera.names. Par exemple, pour désigner la troisième caméra du tableau, utilisez Camera.getCamera("2") .
|
Camera — Si le paramètre name n’est pas spécifié, cette méthode renvoie une référence à la caméra par défaut ou, si elle est utilisée par une autre application, à la première caméra disponible (Si plusieurs caméras sont installées, l’utilisateur peut spécifier la caméra par défaut dans le panneau Paramètres de la caméra de Flash Player.) Si aucune caméra n’est disponible ou installée, la méthode renvoie null .
|
Evénements
status: — Distribué lorsqu’une caméra publie son état. Avant d’accéder à une caméra, Flash Player affiche une boîte de dialogue de confidentialité pour permettre aux utilisateurs d’autoriser ou de refuser l’accès à leur caméra. Si la propriété code est définie sur "Camera.Muted" , l’utilisateur a interdit au fichier SWF d’accéder à sa caméra. Si la propriété code est réglée sur "Camera.unmuted" , l’utilisateur a autorisé le fichier SWF à accéder à sa caméra.
|
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
La méthode Camera.getCamera()
renvoie une référence à un objet camera, ou renvoie null si aucune caméra n’est disponible ni installée. L’instruction if vérifie si la caméra a été trouvée et si l’utilisateur a autorisé l’accès à la caméra. Si l’utilisateur a refusé l’accès, la propriété muted
est définie sur true
.
Généralement, lorsque la méthode attachCamera()
est appelée, une boîte de dialogue apparaît et invite l’utilisateur à autoriser ou à refuser l’accès Flash Player à la caméra. Néanmoins, si l’utilisateur a refusé l’accès et a sélectionné l’option Mémoriser
, la boîte de dialogue n’apparaît pas et rien ne s’affiche. Pour vérifier que l’utilisateur a la possibilité d’autoriser l’accès à la caméra, le champ de texte myTextField
demande à l’utilisateur de cliquer sur le champ de texte afin d’appeler la boîte de dialogue Paramètres de Flash Player.
La méthode clickHandler()
appelle la méthode Security.showSettings()
, qui affiche le panneau PRIVACY
de la boîte de dialogue Paramètres. Si l’utilisateur autorise l’accès, l’événement StatusEvent.STATUS
est distribué et la valeur de la propriété code
de l’événement est définie sur Camera.Unmuted
(la propriété mute
de l’objet de la caméra est définie sur false
également).
La méthode statusHandler()
, ajoutée pour écouter le changement d’état du paramètre de l’utilisateur, appelle la méthode connectCamera()
, si l’utilisateur autorise l’accès. La méthode connectCamera()
instancie un objet video avec la hauteur et la largeur du flux capturé. Pour afficher la vidéo capturée de la caméra, la référence au flux vidéo est associée à l’objet video, et ce dernier est ajouté à la liste d’affichage.
Un objet Timer est démarré également. Chaque seconde, un événement timer de l’objet Timer est distribué et la méthode timerHandler()
est appelée. La méthode timerHandler()
est affichée et met à jour plusieurs propriétés de l’objet Camera.
Remarque : pour cet exemple, la seule propriété qui change est la propriété currentFPS
.
package { import flash.display.Sprite; import flash.media.Camera; import flash.media.Video; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.utils.Timer; import flash.events.TimerEvent; import flash.events.StatusEvent; import flash.events.MouseEvent; import flash.system.SecurityPanel; import flash.system.Security; public class Camera_getCameraExample extends Sprite { private var myTextField:TextField; private var cam:Camera; private var t:Timer = new Timer(1000); public function Camera_getCameraExample() { myTextField = new TextField(); myTextField.x = 10; myTextField.y = 10; myTextField.background = true; myTextField.selectable = false; myTextField.autoSize = TextFieldAutoSize.LEFT; if (Camera.isSupported) { cam = Camera.getCamera(); if (!cam) { myTextField.text = "No camera is installed."; } else if (cam.muted) { myTextField.text = "To enable the use of the camera,\n" + "please click on this text field.\n" + "When the Flash Player Settings dialog appears,\n" + "make sure to select the Allow radio button\n" + "to grant access to your camera."; myTextField.addEventListener(MouseEvent.CLICK, clickHandler); }else { myTextField.text = "Connecting"; connectCamera(); } addChild(myTextField); t.addEventListener(TimerEvent.TIMER, timerHandler); }else { myTextField.text = "The Camera class is not supported on this device."; } } private function clickHandler(e:MouseEvent):void { Security.showSettings(SecurityPanel.PRIVACY); cam.addEventListener(StatusEvent.STATUS, statusHandler); myTextField.removeEventListener(MouseEvent.CLICK, clickHandler); } private function statusHandler(event:StatusEvent):void { if (event.code == "Camera.Unmuted") { connectCamera(); cam.removeEventListener(StatusEvent.STATUS, statusHandler); } } private function connectCamera():void { var vid:Video = new Video(cam.width, cam.height); vid.x = 10; vid.y = 10; vid.attachCamera(cam); addChild(vid); t.start(); } private function timerHandler(event:TimerEvent):void { myTextField.y = cam.height + 20; myTextField.text = ""; myTextField.appendText("bandwidth: " + cam.bandwidth + "\n"); myTextField.appendText("currentFPS: " + Math.round(cam.currentFPS) + "\n"); myTextField.appendText("fps: " + cam.fps + "\n"); myTextField.appendText("keyFrameInterval: " + cam.keyFrameInterval + "\n"); } } }
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 à la caméra pour l’application.
Evénements
PermissionStatus: — distribué lorsque l’autorisation demandée est accordée/refusée par l’utilisateur.
|
setKeyFrameInterval | () | méthode |
public function setKeyFrameInterval(keyFrameInterval:int):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Spécifie les images qui sont transmises intégralement (keyframes) sans être interpolées par l’algorithme de compression vidéo. Cette méthode ne fonctionne que si vous transmettez la vidéo via Flash Media Server.
L’algorithme de compression vidéo de Flash compresse la vidéo en transmettant uniquement les éléments modifiés à partir de la dernière image de la vidéo. Ces portions sont appelées images interpolées. Les images d’une vidéo peuvent être interpolées en fonction du contenu de l’image précédente. Une image-clé, en revanche, est une image vidéo complète. Elle n’est pas interpolée sur la base des images précédentes.
Pour déterminer la valeur du paramètre keyFrameInterval
, tenez compte de la bande passante et de l’accessibilité de la lecture vidéo. Une valeur keyFrameInterval
élevée (envoi moins fréquent des images-clés), par exemple, entraîne une consommation réduite de bande passante. En revanche, le temps nécessaire au positionnement de la tête de lecture à un point donné de la vidéo est susceptible d’augmenter, car il sera peut-être nécessaire d’interpoler un plus grand nombre d’images précédentes avant que la vidéo puisse reprendre.
Inversement, une valeur keyFrameInterval
faible (envoi plus fréquent des images-clés) augmente la consommation de bande passante, car des images vidéo intégrales sont transmises plus souvent, mais elle peut réduire le temps nécessaire à la localisation d’une image spécifique dans une vidéo enregistrée.
Paramètres
keyFrameInterval:int — Valeur spécifiant les images qui sont transmises intégralement (images-clés) sans être interpolées par l’algorithme de compression vidéo. La valeur 1 signifie que chaque image est une image-clé, 3 qu’une image sur trois est une image-clé, etc. Les valeurs gérées sont comprises entre 1 et 48.
|
Valeur émise
PermissionError — L’application ne dispose pas de l’autorisation nécessaire pour utiliser la caméra.
|
Eléments de l’API associés
setLoopback | () | méthode |
public function setLoopback(compress:Boolean = false):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Indique s’il est nécessaire d’utiliser un flux vidéo compressé pour un visionnage local des données reçues par la caméra. Cette méthode n’est applicable que si vous transmettez du contenu vidéo à l’aide de Flash Media Server. Le réglage de compress
sur true
vous permet de déterminer plus précisément la façon dont la vidéo se présentera lorsque les utilisateurs la visionneront en temps réel.
Bien qu’un flux compressé soit utile à des fins de test, par exemple pour se faire une idée des paramètres de qualité vidéo, les coûts de traitement qu’il entraîne sont élevés car il implique plus qu’une simple compression. Le contenu vidéo est compressé, édité à des fins de transmission comme sur une connexion en direct, puis décompressé pour un visionnage local.
Pour définir le taux de compression utilisé lorsque vous réglez compress
sur true
, servez-vous de Camera.setQuality()
.
Paramètres
compress:Boolean (default = false ) — Indique s’il est nécessaire d’utiliser un flux vidéo compressé (true ) ou non (false ) pour un visionnage local des données reçues par la caméra.
|
Valeur émise
PermissionError — L’application ne dispose pas de l’autorisation nécessaire pour utiliser la caméra.
|
Eléments de l’API associés
setMode | () | méthode |
public function setMode(width:int, height:int, fps:Number, favorArea:Boolean = true):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Définit le mode de capture de la caméra sur le mode natif qui remplit le mieux les conditions requises. Si la caméra ne dispose pas d’un mode natif correspondant à tous les paramètres que vous transmettez, le moteur d’exécution sélectionne un mode de capture qui synthétise le mieux le mode demandé. Cette manipulation peut nécessiter le découpage de l’image et l’omission d’images.
Par défaut, le moteur d’exécution omet des images si nécessaire pour conserver la taille de l’image. Pour réduire le nombre d’images omises, même si cela passe par une réduction de la taille de l’image, définissez le paramètre favorArea
sur false
.
Lorsqu’il choisit un mode natif, le moteur d’exécution tente de conserver le format demandé dans la mesure du possible. Par exemple, si vous publiez la commande myCam.setMode(400, 400, 30)
et que les valeurs de largeur et de hauteur maximales disponibles sur la caméra sont 320 et 288, le moteur d’exécution définit la largeur et la hauteur sur 288. Ce faisant, le moteur d’exécution conserve le format 1/1 que vous avez demandé.
Pour déterminer les valeurs affectées à ces propriétés une fois la sélection, par le moteur d’exécution, du mode qui correspond le mieux aux valeurs que vous avez demandées, utilisez les propriétés width
, height
et fps
.
Si vous utilisez Flash Media Server, vous pouvez également capturer des images uniques ou créer une séquence en accéléré. Pour plus d’informations, voir la méthode NetStream.attachCamera()
.
Paramètres
width:int — Largeur de capture demandée, en pixels. La valeur par défaut est 160.
| |
height:int — Hauteur de capture demandée, en pixels. La valeur par défaut est 120.
| |
fps:Number — Cadence à laquelle la caméra doit capturer des données, en images par seconde. La valeur par défaut est 15.
| |
favorArea:Boolean (default = true ) — Indique comment manipuler la largeur, la hauteur et la cadence si la caméra n’est pas dotée d’un mode natif qui remplit les conditions requises. La valeur par défaut est true , ce qui signifie que le maintien de la taille de capture est favorisé ; l’utilisation de ce paramètre permet de sélectionner le mode qui correspond le mieux aux valeurs width et height , même si cela affecte les performances en réduisant la cadence. Pour optimiser la cadence au détriment de la hauteur et de la largeur de la caméra, définissez le paramètre false sur favorArea .
|
Valeur émise
PermissionError — L’application ne dispose pas de l’autorisation nécessaire pour utiliser la caméra.
|
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
La Scène est définie de façon à ne pas être redimensionnée. La méthode Camera.getCamera()
renvoie une référence à un objet camera, ou renvoie null si aucune caméra n’est disponible ni installée. Si une caméra existe, la méthode connectCamera()
est appelée. La méthode connectCamera()
instancie un objet video. Pour afficher la vidéo capturée de la caméra, la référence au flux vidéo est associée à l’objet video, et ce dernier est ajouté à la liste d’affichage. Un écouteur d’événement est défini également pour un événement MouseEvent.CLICK
. Une fois que l’utilisateur a cliqué sur la Scène, la méthode clickHandler()
est invoquée. La méthode vérifie la largeur de la vidéo capturée et définit la largeur, la hauteur, et le taux demandé d’images par seconde du mode de capture de la caméra. L’objet video doit être supprimé et recréé pour que ces paramètres soient appliqués. La hauteur et la largeur de la vidéo doivent également être définies sur la hauteur et la largeur de l’objet de la caméra.
package { import flash.display.Sprite; import flash.media.Camera; import flash.media.Video; import flash.events.MouseEvent; import flash.display.StageScaleMode; public class Camera_setModeExample extends Sprite { private var cam:Camera; private var vid:Video; public function Camera_setModeExample() { stage.scaleMode = StageScaleMode.NO_SCALE; cam = Camera.getCamera(); if (!cam) { trace("No camera is installed."); }else { connectCamera(); } } private function connectCamera():void { vid = new Video(); vid.width = cam.width; vid.height = cam.height; vid.attachCamera(cam); addChild(vid); stage.addEventListener(MouseEvent.CLICK, clickHandler); } private function clickHandler(e:MouseEvent):void { switch (cam.width) { case 160: cam.setMode(320, 240, 10); break; case 320: cam.setMode(640, 480, 5); break; default: cam.setMode(160, 120, 15); break; } removeChild(vid); connectCamera(); } } }
setMotionLevel | () | méthode |
public function setMotionLevel(motionLevel:int, timeout:int = 2000):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Spécifie la quantité de mouvement requise pour distribuer l’événement activity
. Peut éventuellement définir le nombre de millisecondes qui doit s’écouler sans activité avant que le moteur d’exécution ne considère que le mouvement a cessé et distribue l’événement.
Remarque : la vidéo peut être affichée quelle que soit la valeur du paramètre motionLevel
. Ce paramètre détermine uniquement à quel moment et dans quelles circonstances l’événement est distribué, pas si du contenu vidéo est capturé ou affiché.
Pour empêcher la caméra de détecter le mouvement, attribuez la valeur 100 au paramètre motionLevel
. Dans ce cas, l’événement activity
n’est jamais distribué (vous utiliserez probablement cette valeur à des fins de tests uniquement, par exemple pour désactiver temporairement des gestionnaires qui seraient normalement déclenchés par la distribution de l’événement).
Pour déterminer la quantité de mouvement actuellement détectée par la caméra, utilisez la propriété activityLevel
. Les valeurs de sensibilité de mouvement correspondent directement aux valeurs d’activité. La valeur d’activité 0 est associée à l’absence totale de mouvement. La valeur d’activité 100 est associée au mouvement constant. Lorsque vous êtes immobile, votre valeur d’activité est inférieure à votre valeur de sensibilité de mouvement. Inversement, lorsque vous vous déplacez, vos valeurs d’activité sont fréquemment supérieures à votre valeur de sensibilité de mouvement.
L’objectif de cette méthode est similaire à celui de Microphone.setSilenceLevel()
. Les 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 :
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é.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.
Paramètres
motionLevel:int — Spécifie la quantité (intensité) de mouvement requise pour distribuer l’événement activity . Les valeurs gérées sont comprises entre 0 et 100. La valeur par défaut est 50.
| |
timeout:int (default = 2000 ) — Indique le nombre de millisecondes qui doit s’écouler sans activité avant que le moteur d’exécution ne considère que l’activité a cessé et distribue l’événement activity . La valeur par défaut est 2 000 millisecondes (2 secondes).
|
Valeur émise
PermissionError — L’application ne dispose pas de l’autorisation nécessaire pour utiliser la caméra.
|
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
La méthode Camera.getCamera()
renvoie une référence à un objet camera, ou renvoie null si aucune caméra n’est disponible ni installée. L’instruction if vérifie si une caméra est disponible, et appelle la méthode connectCamera()
lorsqu’elle est disponible. La méthode connectCamera()
instancie un objet video avec la hauteur et la largeur du flux capturé. Pour afficher la vidéo capturée de la caméra, la référence au flux vidéo est associée à l’objet video, et ce dernier est ajouté à la liste d’affichage. Généralement, lorsque la méthode attachCamera()
est appelée, une boîte de dialogue apparaît et invite l’utilisateur à autoriser ou à refuser l’accès Flash Player à la caméra. Néanmoins, si l’utilisateur a refusé l’accès et a sélectionné l’option Mémoriser
, la boîte de dialogue n’apparaît pas et rien n’est affiché. Pour vérifier que l’utilisateur a la possibilité d’autoriser l’accès à la caméra, utilisez la méthode system.Security.showSettings()
pour appeler la boîte de dialogue Paramètres de Flash Player.
La méthode setMotionLevel()
définit le niveau d’activité (quantité de mouvement) avant que l’événement activity soit appelé, sur cinq, pour un mouvement minimal. Le délai qui s’écoule entre le moment où la caméra arrête de détecter le mouvement et le moment où l’événement activity est appelé, est défini sur 1 seconde (1 000 millisecondes). Après 1 seconde d’inactivité ou si le niveau d’activité atteint cinq, l’événement ActivityEvent.ACTIVITY
est distribué et la méthode activityHandler()
est invoquée. Si l’événement a été déclenché par le niveau d’activité, la propriété activating
est définie sur true
et un objet Timer est démarré. Chaque seconde, un événement timer de l’objet Timer est distribué et la méthode timerHandler()
est invoquée, ce qui affiche le niveau d’activité en cours (même si un niveau de cinq ou supérieur déclenche la minuterie, le niveau d’activité en cours affiché peut être une valeur inférieure).
package { import flash.display.Sprite; import flash.media.Camera; import flash.media.Video; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.utils.Timer; import flash.events.TimerEvent; import flash.events.ActivityEvent; public class Camera_setMotionLevelExample extends Sprite { private var myTextField:TextField; private var cam:Camera; private var t:Timer = new Timer(1000); public function Camera_setMotionLevelExample() { myTextField = new TextField(); myTextField.background = true; myTextField.selectable = false; myTextField.autoSize = TextFieldAutoSize.LEFT; cam = Camera.getCamera(); if (!cam) { myTextField.text = "No camera is installed."; }else { myTextField.text = "Waiting to connect."; connectCamera(); } addChild(myTextField); t.addEventListener(TimerEvent.TIMER, timerHandler); } private function connectCamera():void { var vid:Video = new Video(cam.width, cam.height); vid.x = 10; vid.y = 10; vid.attachCamera(cam); addChild(vid); cam.setMotionLevel(5, 1000); cam.addEventListener(ActivityEvent.ACTIVITY, activityHandler); } private function activityHandler(e:ActivityEvent):void { if (e.activating == true) { t.start(); } else { myTextField.text = "Everything is quiet."; t.stop(); } } private function timerHandler(event:TimerEvent):void { myTextField.x = 10; myTextField.y = cam.height + 20; myTextField.text = "There is some activity. Level: " + cam.activityLevel; } } }
setQuality | () | méthode |
public function setQuality(bandwidth:int, quality:int):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Définit la quantité maximale de bande passante par seconde ou la qualité d’image requise pour les données vidéo sortantes actuelles. Cette méthode ne peut généralement être appliquée que si vous transmettez la vidéo via Flash Media Server.
Utilisez-la pour spécifier l’élément de la vidéo sortante le plus important pour votre application, la bande passante ou la qualité de l’image.
- Pour indiquer que la bande passante est prioritaire, attribuez une valeur à
bandwidth
et la valeur 0 àquality
. Le moteur d’exécution transmet une vidéo de qualité optimale dans la bande passante spécifiée. Si nécessaire, le moteur d’exécution réduit la qualité de l’image afin d’éviter de dépasser la bande passante spécifiée. En général, plus le mouvement augmente, plus la qualité diminue. - Pour indiquer que la qualité est prioritaire, transmettez la valeur 0 à
bandwidth
et une valeur numérique àquality
. Le moteur d’exécution utilise autant de bande passante que nécessaire pour conserver la qualité spécifiée. Si nécessaire, le moteur d’exécution réduit la fréquence pour conserver la qualité de l’image. En général, plus le mouvement augmente, plus la consommation de bande passante augmente également. - Pour spécifier que la bande passante et la qualité sont aussi importantes l’une que l’autre, transmettez des valeurs numériques aux deux paramètres. Le moteur d’exécution transmet alors de la vidéo permettant de respecter la qualité requise et ne dépassant pas la bande passante spécifiée. Si nécessaire, le moteur d’exécution réduit la fréquence pour conserver la qualité de l’image sans dépasser la bande passante spécifiée.
Paramètres
bandwidth:int — Spécifie la quantité maximale de bande passante pouvant être utilisée par la vidéo sortante actuelle, en octets par seconde. Pour spécifier que la vidéo peut utiliser autant de bande passante que nécessaire pour conserver la valeur de quality , attribuez la valeur 0 à bandwidth . La valeur par défaut est 16384.
| |
quality:int — Entier spécifiant le niveau de qualité d’image requis, tel que déterminé par le taux de compression appliqué à chaque image vidéo. Les valeurs acceptables sont comprises entre 1 (qualité la plus médiocre, compression maximale) et 100 (qualité optimale, pas de compression). Pour spécifier que la qualité d’image peut varier autant que nécessaire afin d’éviter un dépassement de la bande passante disponible, attribuez la valeur 0 à quality .
|
Valeur émise
PermissionError — L’application ne dispose pas de l’autorisation nécessaire pour utiliser la caméra.
|
Eléments de l’API associés
activity | Evénement |
flash.events.ActivityEvent
propriété ActivityEvent.type =
flash.events.ActivityEvent.ACTIVITY
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Distribué lorsqu’une caméra commence ou termine une session. Appelez Camera.setMotionLevel()
pour spécifier la quantité de mouvement requise pour déclencher un événement activity
avec une valeur activating
de true
ou le délai devant s’écouler sans activité avant le déclenchement d’un événement activity
avec une valeur activating
de false
.
ActivityEvent.ACTIVITY
définit la valeur de la propriété type
d’un objet événement activity
.
Les propriétés de cet événement sont les suivantes :
Propriété | Valeur |
---|---|
activating | true si le périphérique est activé ou false s’il est désactivé. |
bubbles | false |
cancelable | false ; il n’existe aucun comportement par défaut à annuler. |
currentTarget | L’objet qui traite activement l’objet Event avec un écouteur d’événements. |
target | Objet commençant ou terminant une session, tel qu’un objet Camera ou Microphone. |
permissionStatus | Evénement |
flash.events.PermissionEvent
propriété PermissionEvent.type =
flash.events.PermissionEvent.PERMISSION_STATUS
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 24.0 |
Distribué lorsque l’application demande l’autorisation d’utiliser la caméra sur le périphérique. Vérifiez la valeur de la propriété status
pour déterminer si l’autorisation a été accordée ou refusée.
Eléments de l’API associés
status | Evénement |
flash.events.StatusEvent
propriété StatusEvent.type =
flash.events.StatusEvent.STATUS
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 9, AIR (unsupported) |
Distribué lorsqu’une caméra publie son état. Avant d’accéder à une caméra, le moteur d’exécution affiche une boîte de dialogue de confidentialité pour permettre aux utilisateurs d’autoriser ou de refuser l’accès à leur caméra. Si la propriété code
est définie sur "Camera.Muted"
, l’utilisateur a interdit au fichier SWF d’accéder à sa caméra. Si la propriété code
est réglée sur "Camera.unmuted"
, l’utilisateur a autorisé le fichier SWF à accéder à sa caméra.
Remarque : cet événement n’est pas distribué sur la plate-forme AIR. Il est utilisé uniquement dans Flash Player.
Définit la valeur de la propriététype
d’un objet événement status
.
Les propriétés de cet événement sont les suivantes :
Propriété | Valeur |
---|---|
bubbles | false |
cancelable | false ; il n’existe aucun comportement par défaut à annuler. |
code | Description de l’état de l’objet. |
currentTarget | L’objet qui traite activement l’objet Event avec un écouteur d’événements. |
level | Catégorie du message, telle que "status" , "warning" ou "error" . |
target | Objet publiant son état. |
Eléments de l’API associés
videoFrame | Evénement |
flash.events.Event
propriété Event.type =
flash.events.Event.VIDEO_FRAME
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 11.4, AIR 3.4 |
Envoyé après qu’un nouveau cadre de caméra a été traité par le moteur d’exécution et est disponible pour la copie.
La constanteEvent.VIDEO_FRAME
définit la valeur de la propriété type
d’un objet d’événement videoFrame
.
Les propriétés de cet événement sont les suivantes :
Propriété | Valeur |
---|---|
bubbles | false |
cancelable | false ; il n’existe aucun comportement par défaut à annuler. |
target | Objet Camera ayant distribué cet événement. |
Eléments de l’API associés
activity
est distribué au début et à la fin (si elle existe) de la session, et elle est capturée par la méthode activityHandler()
qui imprime les informations concernant l’événement.
Remarque : une caméra doit être reliée à votre ordinateur pour le bon déroulement de cet exemple.
package { import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.*; import flash.media.Camera; import flash.media.Video; public class CameraExample extends Sprite { private var video:Video; public function CameraExample() { stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; var camera:Camera = Camera.getCamera(); if (camera != null) { camera.addEventListener(ActivityEvent.ACTIVITY, activityHandler); video = new Video(camera.width * 2, camera.height * 2); video.attachCamera(camera); addChild(video); } else { trace("You need a camera."); } } private function activityHandler(event:ActivityEvent):void { trace("activityHandler: " + event); } } }
Tue Jun 12 2018, 09:30 AM Z