Pakket | flash.media |
Klasse | public final class Camera |
Overerving | Camera EventDispatcher Object |
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
Bij een Camera-instantie worden video-opnamen met de oriëntatie Liggend gemaakt. Op apparaten waarbij u de schermoriëntatie kunt wijzigen, zoals mobiele telefoons, worden video-opnamen met de oriëntatie Staand alleen liggend weergegeven door een Video-object dat is gekoppeld aan de camera. Daarom moeten mobiele apparaten gebruikmaken van de oriëntatie Liggend en moet de functie voor automatisch roteren worden uitgeschakeld.
Op iOS wordt de video van de voorwaartse gerichte camera gespiegeld. Op Android gebeurt dit niet.
Op mobiele apparaten met een autofocuscamera, wordt de autofocus automatisch ingeschakeld. Als de camera geen continue autofocusfunctie heeft (dit is het geval bij veel camera's op mobiele apparaten), wordt de focus van de camera ingesteld wanneer het Camera-object wordt gekoppeld aan een videostream en wanneer de methode setMode()
wordt aangeroepen. Op bureaubladcomputers is het gedrag van de autofocus afhankelijk van het stuurprogramma en de instellingen van de camera.
Bij AIR-toepassingen op Android en iOS kan de camera alleen videobeelden opnemen als de AIR-toepassing actief op de voorgrond wordt uitgevoerd. Bovendien kan de streamingverbinding worden verbroken wanneer de toepassing op de achtergrond wordt uitgevoerd. Bij iOS-systemen kan de video niet worden weergegeven wanneer een toepassing gebruikmaakt van de GPU-rendermodus. De videobeelden die door de camera worden opgenomen kunnen wel via streaming naar een server worden overgebracht.
AIR-profielondersteuning: deze functie wordt niet ondersteund op AIR for TV-apparaten. Zie AIR-profielondersteuning voor meer informatie over API-ondersteuning voor meerdere profielen. Bij AIR for TV-apparaten is Camera.isSupported
gelijk aan true
, maar Camera.getCamera()
retourneert altijd null
. Cameratoegang wordt niet ondersteund in mobiele browsers.
Zie de klasse Microphone voor informatie over het vastleggen van audio.
Belangrijk: de runtime geeft een dialoogvenster Privacy weer waarin de gebruiker de toegang tot de camera kan toestaan of weigeren. Zorg dat het toepassingsvenster tenminste 215 x 138 pixels groot is; dit is de minimale grootte die nodig is om het dialoogvenster weer te geven.
Gebruik de methode getCamera()
om een object Camera te maken of hiernaar te verwijzen.
Meer informatie
Michael Chaize: Android, AIR en de camera
Verwante API-elementen
Eigenschap | Gedefinieerd door | ||
---|---|---|---|
activityLevel : Number [alleen-lezen]
Hoeveelheid beweging die de camera detecteert. | Camera | ||
bandwidth : int [alleen-lezen]
De maximale hoeveelheid bandbreedte in bytes die de huidige uitgaande videofeed kan gebruiken. | Camera | ||
constructor : Object
Verwijzing naar het klasseobject of de constructorfunctie van een bepaalde objectinstantie. | Object | ||
currentFPS : Number [alleen-lezen]
De snelheid waarmee de camera gegevens vastlegt, in frames per seconde. | Camera | ||
fps : Number [alleen-lezen]
De maximale snelheid waarmee de camera gegevens kan vastleggen, in frames per seconde. | Camera | ||
height : int [alleen-lezen]
De huidige vastleggingshoogte, in pixels. | Camera | ||
index : int [alleen-lezen]
Een op nul gebaseerde index die de positie van de camera opgeeft in de array Camera.names die alle beschikbare camera's opsomt. | Camera | ||
isSupported : Boolean [statisch] [alleen-lezen]
De eigenschap isSupported wordt ingesteld op true als de Camera-klasse op het huidige platform wordt ondersteund. Als dit niet het geval is, wordt de eigenschap ingesteld op false. | Camera | ||
keyFrameInterval : int [alleen-lezen]
Het aantal videoframes dat volledig wordt verzonden (als hoofdframes) in plaats van te worden geïnterpoleerd door het algoritme voor videocompressie. | Camera | ||
loopback : Boolean [alleen-lezen]
Geeft aan of een lokale weergave van hetgeen de camera vastlegt, wordt gecomprimeerd en gedecomprimeerd (true), zoals bij live-verzending via Flash Media Server, of niet wordt gecomprimeerd (false). | Camera | ||
motionLevel : int [alleen-lezen]
De hoeveelheid beweging die nodig is om de gebeurtenis activity aan te roepen. | Camera | ||
motionTimeout : int [alleen-lezen]
Het aantal milliseconden tussen het moment dat de camera stopt met het detecteren van beweging en het moment dat de gebeurtenis activity wordt aangeroepen. | Camera | ||
muted : Boolean [alleen-lezen]
Een Booleaanse waarde die aangeeft of de gebruiker toegang tot de camera heeft geweigerd (true) of heeft toegestaan (false) via het deelvenster Privacy van Flash Player. | Camera | ||
name : String [alleen-lezen]
De naam van de huidige camera, zoals geretourneerd door de camerahardware. | Camera | ||
names : Array [statisch] [alleen-lezen]
Een array van tekenreeksen die de namen van alle beschikbare camera's bevat. | Camera | ||
permissionStatus : String [statisch] [alleen-lezen]
Hiermee bepaalt u of toestemming is verleend aan de toepassing om de camera te gebruiken. | Camera | ||
position : String [alleen-lezen]
Geeft de zijde van een apparaat op waarop de camera zich bevindt. | Camera | ||
quality : int [alleen-lezen]
Het vereiste niveau van de afbeeldingskwaliteit, zoals is bepaald door de hoeveelheid compressie die op elk videoframe wordt toegepast. | Camera | ||
width : int [alleen-lezen]
De huidige vastleggingsbreedte, in pixels. | Camera |
Methode | Gedefinieerd door | ||
---|---|---|---|
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registreert een gebeurtenislistenerobject bij een object EventDispatcher, zodat de listener een melding van een gebeurtenis ontvangt. | EventDispatcher | ||
Vult een bytearray uit een rechthoekig gebied met pixelgegevens Schrijft een geheel getal zonder teken (32 bits niet-vermenigvuldigde pixelwaarde) voor elke pixel in de bytearray. | Camera | ||
Vult een vector uit een rechthoekig gebied met pixelgegevens. | Camera | ||
Verzendt een gebeurtenis naar de gebeurtenisstroom. | EventDispatcher | ||
Kopieert het laatste frame naar een bitmap. | Camera | ||
[statisch]
Retourneert een verwijzing naar een object Camera voor het vastleggen van video. | Camera | ||
Controleert of het object EventDispatcher listeners heeft geregistreerd voor een specifiek type gebeurtenis. | EventDispatcher | ||
Geeft aan of voor een object een opgegeven eigenschap is gedefinieerd. | Object | ||
Geeft aan of een instantie van de klasse Object zich in de prototypeketen van het object bevindt dat als parameter is opgegeven. | Object | ||
Geeft aan of de opgegeven eigenschap bestaat en kan worden opgesomd. | Object | ||
Verwijdert een listener uit het object EventDispatcher. | EventDispatcher | ||
Hiermee wordt door de toepassing toestemming gevraagd voor de camera. | Camera | ||
Geeft op welke videoframes volledig worden verzonden (hoofdframes) in plaats van te worden geïnterpoleerd door het algoritme voor videocompressie. | Camera | ||
Geeft op of een gecomprimeerde videostream moet worden gebruikt voor een lokale weergave van de camera. | Camera | ||
Stelt de cameravastleggingsmodus in op de native modus die het beste overeenkomt met de opgegeven vereisten. | Camera | ||
Geeft op hoeveel beweging nodig is om de gebeurtenis activity te verzenden. | Camera | ||
Stelt de beschikbaarheid van een dynamische eigenschap voor lusbewerkingen in. | Object | ||
Stelt de maximale bandbreedte per seconde of de vereiste beeldkwaliteit van de huidige uitgaande videofeed in. | Camera | ||
Geeft de tekenreeksweergave van dit object weer, geformatteerd volgens de locatiespecifieke conventies. | Object | ||
Retourneert een tekenreeksrepresentatie van het opgegeven object. | Object | ||
Retourneert de primitieve waarde van het opgegeven object. | Object | ||
Controleert of een gebeurtenislistener is geregistreerd bij dit object EventDispatcher of een van de voorouders voor het opgegeven type gebeurtenis. | EventDispatcher |
Gebeurtenis | Overzicht | Gedefinieerd door | ||
---|---|---|---|---|
[uitgezonden gebeurtenis] Wordt verzonden wanneer Flash Player of de AIR-toepassing de besturingssysteemfocus krijgt en actief wordt. | EventDispatcher | |||
Wordt verzonden wanneer een camera een sessie begint of eindigt. | Camera | |||
[uitgezonden gebeurtenis] Wordt verzonden wanneer Flash Player of de AIR-toepassing de systeemfocus verliest en inactief wordt. | EventDispatcher | |||
Wordt verzonden wanneer de toepassing toestemming vraagt de camera op het apparaat te gebruiken. | Camera | |||
Wordt verzonden wanneer een camera de status meldt. | Camera | |||
Verzonden nadat een nieuw cameraframe wordt verwerkt door de runtime en beschikbaar is om te worden gekopieerd. | Camera |
activityLevel | eigenschap |
activityLevel:Number
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
Hoeveelheid beweging die de camera detecteert. Mogelijke waarden lopen van 0 (er wordt geen beweging gedetecteerd) tot en met 100 (er wordt zeer veel beweging gedetecteerd). Met de waarde van deze eigenschap kunt u bepalen of u een instelling moet doorgeven aan de methode setMotionLevel()
.
Wanneer de camera beschikbaar is maar niet wordt gebruikt omdat de methode Video.attachCamera()
niet is aangeroepen, wordt deze eigenschap ingesteld op -1.
Wanneer u alleen ongecomprimeerde lokale videostreams streamt, wordt deze eigenschap alleen ingesteld wanneer u een functie aan de gebeurtenishandler hebt toegewezen. Anders is deze functie ongedefinieerd.
Implementatie
public function get activityLevel():Number
Gegenereerde uitzondering
PermissionError — De toepassing heeft geen toestemming om de camera te gebruiken.
|
Verwante API-elementen
bandwidth | eigenschap |
bandwidth:int
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
De maximale hoeveelheid bandbreedte in bytes die de huidige uitgaande videofeed kan gebruiken. De waarde 0 houdt in dat de feed zoveel bandbreedte kan gebruiken als nodig is om de gewenste framekwaliteit te behouden.
Gebruik de methode setQuality()
om deze eigenschap in te stellen.
Implementatie
public function get bandwidth():int
Gegenereerde uitzondering
PermissionError — De toepassing heeft geen toestemming om de camera te gebruiken.
|
Verwante API-elementen
currentFPS | eigenschap |
currentFPS:Number
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
De snelheid waarmee de camera gegevens vastlegt, in frames per seconde. Deze eigenschap kan niet worden ingesteld. U kunt echter de methode setMode()
gebruiken om een verwante eigenschap, fps
, in te stellen die de maximale framesnelheid opgeeft waarmee u wilt dat de camera gegevens vastlegt.
Implementatie
public function get currentFPS():Number
Gegenereerde uitzondering
PermissionError — De toepassing heeft geen toestemming om de camera te gebruiken.
|
Verwante API-elementen
fps | eigenschap |
fps:Number
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
De maximale snelheid waarmee de camera gegevens kan vastleggen, in frames per seconde. De maximale snelheid hangt mogelijk af van de mogelijkheden van de camera, deze framesnelheid wordt mogelijk niet bereikt.
- Wanneer u een gewenste waarde voor deze eigenschap wilt instellen, gebruikt u de methode
setMode()
. - Gebruik de eigenschap
currentFPS
om de snelheid te bepalen waarmee de camera momenteel gegevens vastlegt.
Implementatie
public function get fps():Number
Gegenereerde uitzondering
PermissionError — De toepassing heeft geen toestemming om de camera te gebruiken.
|
Verwante API-elementen
height | eigenschap |
height:int
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
De huidige vastleggingshoogte, in pixels. Wanneer u een waarde voor deze eigenschap wilt instellen, gebruikt u de methode setMode()
.
Implementatie
public function get height():int
Gegenereerde uitzondering
PermissionError — De toepassing heeft geen toestemming om de camera te gebruiken.
|
Verwante API-elementen
index | eigenschap |
index:int
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
Een op nul gebaseerde index die de positie van de camera opgeeft in de array Camera.names
die alle beschikbare camera's opsomt.
Implementatie
public function get index():int
Gegenereerde uitzondering
PermissionError — De toepassing heeft geen toestemming om de camera te gebruiken.
|
Verwante API-elementen
isSupported | eigenschap |
isSupported:Boolean
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10.1, AIR 2 |
De eigenschap isSupported
wordt ingesteld op true
als de Camera-klasse op het huidige platform wordt ondersteund. Als dit niet het geval is, wordt de eigenschap ingesteld op false
.
Implementatie
public static function get isSupported():Boolean
keyFrameInterval | eigenschap |
keyFrameInterval:int
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
Het aantal videoframes dat volledig wordt verzonden (als hoofdframes) in plaats van te worden geïnterpoleerd door het algoritme voor videocompressie. De standaardwaarde is 15, wat betekent dat elk 15e frame een hoofdframe is. De waarde 1 betekent dat elk frame een hoofdframe is. De toegestane waarden zijn 1 tot en met 300.
Implementatie
public function get keyFrameInterval():int
Gegenereerde uitzondering
PermissionError — De toepassing heeft geen toestemming om de camera te gebruiken.
|
Verwante API-elementen
loopback | eigenschap |
loopback:Boolean
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
Geeft aan of een lokale weergave van hetgeen de camera vastlegt, wordt gecomprimeerd en gedecomprimeerd (true
), zoals bij live-verzending via Flash Media Server, of niet wordt gecomprimeerd (false
). De standaardwaarde is false
.
Hoewel een gecomprimeerde stream handig is voor testdoeleinden, zoals de kwaliteitsinstellingen van video vooraf bekijken, kost dit zeer veel verwerkingskracht. De lokale weergave wordt gecomprimeerd, bewerkt voor verzending zoals via een live-verbinding en vervolgens weer gedecomprimeerd voor lokale weergave.
Gebruik Camera.setLoopback()
om deze waarde in te stellen. Wanneer u de hoeveelheid compressie wilt instellen die wordt gebruikt wanneer deze eigenschap is ingesteld op true, gebruikt u Camera.setQuality()
.
Implementatie
public function get loopback():Boolean
Gegenereerde uitzondering
PermissionError — De toepassing heeft geen toestemming om de camera te gebruiken.
|
Verwante API-elementen
motionLevel | eigenschap |
motionLevel:int
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
De hoeveelheid beweging die nodig is om de gebeurtenis activity
aan te roepen. Acceptabele waarden lopen van 0 tot 100. De standaardwaarde is 50.
Video kan worden weergegeven, ongeacht de waarde van de eigenschap motionLevel
. Zie setMotionLevel()
voor meer informatie.
Implementatie
public function get motionLevel():int
Gegenereerde uitzondering
PermissionError — De toepassing heeft geen toestemming om de camera te gebruiken.
|
Verwante API-elementen
motionTimeout | eigenschap |
motionTimeout:int
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
Het aantal milliseconden tussen het moment dat de camera stopt met het detecteren van beweging en het moment dat de gebeurtenis activity
wordt aangeroepen. De standaardwaarde is 2000 (2 seconden).
Gebruik setMotionLevel()
om deze waarde in te stellen.
Implementatie
public function get motionTimeout():int
Gegenereerde uitzondering
PermissionError — De toepassing heeft geen toestemming om de camera te gebruiken.
|
Verwante API-elementen
muted | eigenschap |
muted:Boolean
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
Een Booleaanse waarde die aangeeft of de gebruiker toegang tot de camera heeft geweigerd (true
) of heeft toegestaan (false
) via het dialoogvenster Flash Player Privacy. Wanneer deze waarde verandert, wordt de gebeurtenis status
verzonden.
Implementatie
public function get muted():Boolean
Gegenereerde uitzondering
PermissionError — De toepassing heeft geen toestemming om de camera te gebruiken.
|
Verwante API-elementen
name | eigenschap |
name:String
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
De naam van de huidige camera, zoals geretourneerd door de camerahardware.
Implementatie
public function get name():String
Gegenereerde uitzondering
PermissionError — De toepassing heeft geen toestemming om de camera te gebruiken.
|
Verwante API-elementen
names | eigenschap |
names:Array
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
Een array van tekenreeksen die de namen van alle beschikbare camera's bevat. Het dialoogvenster Flash Player Privacy-dialoogvenster wordt niet weergegeven wanneer u deze array opent. Deze array biedt de op nul gebaseerde index van elke camera en het aantal camera's op het systeem (met behulp van names.length
).
Het aanroepen van de eigenschap names
vereist een uitvoerige controle van de hardware. In de meeste gevallen kunt u de standaardcamera gebruiken.
Implementatie
public static function get names():Array
Gegenereerde uitzondering
PermissionError — De toepassing heeft geen toestemming om de camera te gebruiken.
|
Verwante API-elementen
permissionStatus | eigenschap |
position | eigenschap |
position:String
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 3.0 |
Geeft de zijde van een apparaat op waarop de camera zich bevindt.
Gebruik de eigenschap property
om te bepalen of een camera van een mobiel apparaat zich op de voor- of achterzijde van het apparaat bevindt. De volgende functie controleert elke beschikbare camera tot een camera met de gewenste positie wordt gevonden. Als er geen camera met de gewenste positie wordt gevonden, wordt de standaardcamera geretourneerd.
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();
Op mobiele apparaten is de positie van de camera normaal ofwel CameraPosition.FRONT
of CameraPosition.BACK
. Als de positie van de camera niet kan worden bepaald, wordt de positie gerapporteerd als CameraPosition.UNKNOWN
. Op bureaubladplatformen is de positie altijd CameraPosition.UNKNOWN
.
Constanten voor de geldige waarden voor deze eigenschap worden gedefinieerd in de klasse CameraPosition.
Implementatie
public function get position():String
Gegenereerde uitzondering
PermissionError — De toepassing heeft geen toestemming om de camera te gebruiken.
|
Verwante API-elementen
quality | eigenschap |
quality:int
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
Het vereiste niveau van de afbeeldingskwaliteit, zoals is bepaald door de hoeveelheid compressie die op elk videoframe wordt toegepast. Acceptabele waarden liggen tussen 1 (laagste kwaliteit, maximale compressie) en 100 (hoogste kwaliteit, geen compressie). De standaardwaarde is 0, wat betekent dat de beeldkwaliteit kan worden gevarieerd als dit nodig is om te voorkomen dat de beschikbare bandbreedte wordt overschreden.
Gebruik de methode setQuality()
om deze eigenschap in te stellen.
Implementatie
public function get quality():int
Gegenereerde uitzondering
PermissionError — De toepassing heeft geen toestemming om de camera te gebruiken.
|
Verwante API-elementen
width | eigenschap |
width:int
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
De huidige vastleggingsbreedte, in pixels. Wanneer u een gewenste waarde voor deze eigenschap wilt instellen, gebruikt u de methode setMode()
.
Implementatie
public function get width():int
Gegenereerde uitzondering
PermissionError — De toepassing heeft geen toestemming om de camera te gebruiken.
|
Verwante API-elementen
copyToByteArray | () | methode |
public function copyToByteArray(rect:Rectangle, destination:ByteArray):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 11.4, AIR 3.4 |
Vult een bytearray uit een rechthoekig gebied met pixelgegevens
Schrijft voor elke pixel een geheel getal zonder teken (een niet-vermenigvuldigde 32-bits pixelwaarde) in de bytearray. De array wordt aangepast aan het vereiste aantal bytes om alle pixels te houden.
Parameters
rect:Rectangle — Een rechthoekig gebied in het huidige object BitmapData.
| |
destination:ByteArray — Een bytearray die de pixels in het opgegeven object Rectangle vertegenwoordigt.
|
Gegenereerde uitzondering
PermissionError — De toepassing heeft geen toestemming om de camera te gebruiken.
| |
TypeError — De waarde voor rect is null.
| |
TypeError — Het doel is null
|
Verwante API-elementen
copyToVector | () | methode |
public function copyToVector(rect:Rectangle, destination:Vector.<uint>):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 11.4, AIR 3.4 |
Vult een vector uit een rechthoekig gebied met pixelgegevens.
Schrijft voor elke pixel een geheel getal zonder teken (een niet-vermenigvuldigde 32-bits pixelwaarde) in de vector. De vector wordt aangepast aan het vereiste aantal vermeldingen om alle pixels te houden.
Parameters
rect:Rectangle — Een rechthoekig gebied in het huidige object BitmapData.
| |
destination:Vector.<uint> — Een vector.<uint> die de pixels in de opgegeven rechthoek vertegenwoordigt.
|
Gegenereerde uitzondering
PermissionError — De toepassing heeft geen toestemming om de camera te gebruiken.
| |
TypeError — De waarde voor rect is null.
| |
TypeError — Het doel is null
|
Verwante API-elementen
drawToBitmapData | () | methode |
public function drawToBitmapData(destination:BitmapData):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 11.4, AIR 3.4 |
Kopieert het laatste frame naar een bitmap.
Deze methode kopieert de inhoud van het laatste frame naar een BitmapData-instantie.
Parameters
destination:BitmapData — Een BitmapData-instantieobject om het laatste frame te bevatten.
|
Gegenereerde uitzondering
ArgumentError — kInvalidBitmapDataError als doel te klein is
|
Verwante API-elementen
getCamera | () | methode |
public static function getCamera(name:String = null):Camera
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
Retourneert een verwijzing naar een object Camera voor het vastleggen van video. Als u wilt beginnen met het vastleggen van video, koppelt u het object Camera aan een object Video (zie Video.attachCamera()
). Roep NetStream.attachCamera()
aan om het object Camera aan een object NetStream te koppelen als u video naar Flash Media Server wilt verzenden.
Meerdere aanroepen van de methode getCamera()
verwijzen naar hetzelfde camerastuurprogramma. Wanneer uw code bijvoorbeeld code bevat zoals firstCam:Camera = getCamera()
en secondCam:Camera = getCamera()
, verwijzen firstCam
ensecondCam
beide naar dezelfde camera, de standaardcamera van de gebruiker.
Bij mobiele apparaten met zowel een camera aan de voorzijde als aan de achterzijde kunt u alleen videobeelden van één camera tegelijkertijd vastleggen.
U geeft over het algemeen geen waarde door aan de parameter name
. U kunt getCamera()
gebruiken om een verwijzing naar de standaardcamera te retourneren. In het deelvenster Camera (dat verderop in deze sectie wordt besproken) kan de gebruiker de standaardcamera opgeven.
U kunt ActionScript niet gebruiken om de bevoegdheid van een gebruiker voor toegang tot de camera in te stellen op Allow of Deny, maar u kunt wel het dialoogvenster voor camera-instellingen in Adobe Flash Player Settings weergeven, waarin de gebruiker de camerabevoegdheden kan instellen. Wanneer een SWF-bestand dat de methode attachCamera()
gebruikt om de camera die wordt geretourneerd door de methode getCamera()
te koppelen aan een object Video of NetStream, geeft Flash Player een dialoogvenster weer waarin de gebruiker toegang tot de camera kan toestaan of weigeren. (Zorg dat het toepassingsvenster ten minste 215 x 138 pixels groot is; dit is de minimale grootte die Flash Player nodig heeft om het dialoogvenster weer te geven.) Wanneer de gebruiker op het dialoogvenster voor camera-instellingen reageert, retourneert de gebeurtenishandler status
een informatieobject dat het antwoord van de gebruiker aangeeft: Camera.muted
geeft aan dat de gebruiker toegang tot een camera heeft geweigerd; Camera.Unmuted
geeft aan dat de gebruiker toegang tot een camera heeft toegestaan. Gebruik de eigenschap muted
om te bepalen of de gebruiker het gebruik van de camera heeft toegestaan of geweigerd zonder de gebeurtenis status
te verwerken.
In Flash Player kan de gebruiker permanente privacyinstellingen voor een bepaald domein opgeven door bij uitvoering van een SWF-bestand met de rechtermuisknop te klikken (Windows en Linux) of de Control-toets ingedrukt te houden en te klikken (Macintosh) en Instellingen te selecteren, het dialoogvenster Privacy te openen en Onthouden te selecteren. Wanneer de gebruiker Remember selecteert, vraagt Flash Player de gebruiker niet meer of SWF-bestanden uit dit domein wel of geen toegang hebben tot de camera.
Opmerking: De methode attachCamera()
zal het dialoogvenster niet aanroepen om de toegang tot de camera toe te staan of te weigeren als de gebruiker de toegang heeft geweigerd door Remember te selecteren in het dialoogvenster van Flash Player Settings. In dit geval kunt u de gebruiker vragen de instelling Allow of Deny te wijzigen door het deelvenster Flash Player Privacy voor de gebruiker weer te geven met Security.showSettings(SecurityPanel.PRIVACY)
.
Wanneer getCamera()
de waarde null
retourneert, wordt de camera gebruikt door een andere toepassing of zijn er geen camera’s op het systeem geïnstalleerd. Als u wilt bepalen of er camera’s zijn geïnstalleerd, gebruikt u de eigenschap names.length
. Wanneer u het deelvenster Camera van Flash Player Settings wilt weergeven, waarin de gebruiker de camera kan kiezen waarnaar wordt verwezen door getCamera()
, gebruikt u Security.showSettings(SecurityPanel.CAMERA)
.
Het scannen van de hardware op camera’s neemt tijd in beslag. Wanneer het runtime-programma ten minste één camera vindt, wordt de hardware niet opnieuw gescand gedurende de levensduur van de spelerinstantie. Wanneer het runtime-programma echter geen camera's vindt, wordt de hardware elke keer gescand wanneer getCamera
wordt aangeroepen. Dit is nuttig wanneer de camera aanwezig is, maar is uitgeschakeld. Wanneer uw SWF-bestand een knop Opnieuw bevat die getCamera
aanroept, kan Flash Player de camera vinden zonder dat de gebruiker het SWF-bestand opnieuw hoeft te openen.
Parameters
name:String (default = null ) — Geeft op welke camera moet worden opgehaald, zoals wordt bepaald door de array die door de eigenschap names wordt geretourneerd. Voor de meeste toepassingen wordt de standaardcamera opgehaald wanneer u deze parameter weglaat. Gebruik de tekenreeksrepresentatie van de op nul gebaseerde indexpositie binnen de array Camera.names om een waarde voor deze parameter op te geven. Gebruik bijvoorbeeld Camera.getCamera("2") om de derde camera in de array op te geven.
|
Camera — Wanneer de parameter name niet is opgegeven, retourneert deze methode een verwijzing naar de standaardmicrofoon of, wanneer deze door een andere toepassing wordt gebruikt, naar de eerstvolgende beschikbare microfoon. (Wanneer meer dan één camera is geïnstalleerd, kan de gebruiker de standaardcamera opgeven in het deelvenster Camera van Flash Player Settings.) Wanneer geen camera’s beschikbaar zijn of zijn geïnstalleerd, retourneert de methode null .
|
Gebeurtenissen
status: — Wordt verzonden wanneer een camera de status meldt. Voordat u de camera opent, geeft Flash Player een dialoogvenster Privacy weer, waarmee gebruikers toegang tot hun camera kunnen toestaan of weigeren. Wanneer de waarde van de eigenschap code Camera.Muted is, heeft de gebruiker het SWF-bestand de toegang tot de camera van de gebruiker geweigerd. Wanneer de waarde van de eigenschap code "Camera.Unmuted" is, heeft de gebruiker het SWF-bestand de toegang tot de camera van de gebruiker toegestaan.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
De methode Camera.getCamera()
retourneert een referentie naar een cameraobject, of retourneert nul als er geen camera beschikbaar of geïnstalleerd is. De instructie if controleert of de camera werd gedetecteerd en of de gebruiker de toegang tot de camera heeft toegestaan. De eigenschap muted
wordt ingesteld op true
als de gebruiker de toegang heeft geweigerd.
Doorgaans verschijnt een dialoogvenster waarin de gebruiker wordt gevraagd de toegang tot de camera door Flash Player toe te staan of te weigeren wanneer de methode attachCamera()
wordt aangeroepen. Als de gebruiker echter de toegang heeft geweigerd en de optie Remember
heeft geselecteerd, zal het dialoogvenster niet verschijnen en wordt er niets weergegeven. Om er zeker van te kunnen zijn dat de gebruiker over de optie beschikt om de toegang tot de camera toe te staan, bevat het tekstveld myTextField
een instructie voor de gebruiker om op het tekstveld te klikken en zo het dialoogvenster Flash Player Settings aan te roepen.
De methode clickHandler()
roept de methode Security.showSettings()
aan, waardoor het deelvenster PRIVACY
van het dialoogvenster Settings wordt weergegeven. Als de gebruiker de toegang toestaat, wordt de gebeurtenis StatusEvent.STATUS
verzonden en wordt de waarde van de eigenschap code
van de gebeurtenis ingesteld op Camera.Unmuted
. (De eigenschap mute
van het cameraobject wordt eveneens ingesteld op false
.)
De methode statusHandler()
, die werd toegevoegd om naar de statuswijziging van de instelling van de gebruiker te luisteren, roept de methode connectCamera()
aan als de gebruiker de toegang toestaat. De methode connectCamera()
instantieert een video-object met de breedte en hoogte van de vastgelegde stream. Om de vastgelegde video van de camera weer te geven, wordt de referentie naar de videostream aan het video-object gekoppeld, en wordt het video-object aan het weergaveoverzicht toegevoegd.
Er wordt ook een object Timer gestart. Elke seconde wordt de gebeurtenis timer van een object Timer verzonden en wordt de methode timerHandler()
aangeroepen. De methode timerHandler()
wordt weergegeven en werkt een aantal eigenschappen van het object Camera bij.
Opmerking: in dit voorbeeld is de eigenschap currentFPS
de enige eigenschap die verandert.
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 | () | methode |
public function requestPermission():void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 24.0 |
Hiermee wordt door de toepassing toestemming gevraagd voor de camera.
Gebeurtenissen
PermissionStatus: — wordt verzonden wanneer de aangevraagde toestemming door de gebruiker wordt verleend/geweigerd.
|
setKeyFrameInterval | () | methode |
public function setKeyFrameInterval(keyFrameInterval:int):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
Geeft op welke videoframes volledig worden verzonden (hoofdframes) in plaats van te worden geïnterpoleerd door het algoritme voor videocompressie. Deze methode is alleen van toepassing wanneer u video verzendt via Flash Media Server.
Het Flash-algoritme voor videocompressie comprimeert video door alleen datgene te verzenden wat is gewijzigd sinds het vorige videoframe; deze delen worden beschouwd als geïnterpoleerde frames. Frames van een video kunnen worden geïnterpoleerd op basis van de inhoud van het vorige frame. Een hoofdframe is echter een volledig videoframe dat niet is geïnterpoleerd op basis van voorgaande frames.
Als u wilt bepalen welke waarde u het beste kunt instellen voor parameter keyFrameInterval
parameter, moet u rekening houden met het bandbreedtegebruik en de toegankelijkheid tijdens het afspelen van video. Wanneer u bijvoorbeeld een hogere waarde opgeeft voor keyFrameInterval
(er worden minder vaak hoofdframes verzonden), neemt het bandbreedtegebruik af. Hierdoor kan het echter langer duren om de afspeelkop op een bepaald punt in de video te plaatsen aangezien mogelijk meer voorafgaande videoframes moeten worden geïnterpoleerd voordat de video kan worden hervat.
Wanneer u daarentegen een lagere waarde opgeeft voor keyFrameInterval
(er worden vaker hoofdframes verzonden), neemt het bandbreedtegebruik toe omdat vaker gehele videoframes worden verzonden. Het kan echter minder tijd kosten om een bepaald videoframe in de opgenomen video te vinden.
Parameters
keyFrameInterval:int — Deze waarde geeft op welke videoframes volledig worden verzonden (hoofdframes) in plaats van te worden geïnterpoleerd door het algoritme voor videocompressie. De waarde 1 betekent dat elk frame een hoofdframe is. De waarde 3 betekent dat elk derde frame een hoofdframe is, enzovoort. Acceptabele waarden zijn 1 tot en met 48.
|
Gegenereerde uitzondering
PermissionError — De toepassing heeft geen toestemming om de camera te gebruiken.
|
Verwante API-elementen
setLoopback | () | methode |
public function setLoopback(compress:Boolean = false):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
Geeft op of een gecomprimeerde videostream moet worden gebruikt voor een lokale weergave van de camera. Deze methode is alleen van toepassing wanneer u video verzendt via Flash Media Server. Wanneer ucompress
op true
instelt, kunt u nauwkeuriger nagaan hoe de video eruitziet voor gebruikers die deze in realtime bekijken.
Hoewel een gecomprimeerde stream handig is voor testdoeleinden, zoals de kwaliteitsinstellingen van video vooraf bekijken, kost dit zeer veel verwerkingskracht aangezien de lokale weergave niet eenvoudig wordt gecomprimeerd. Deze wordt namelijk gecomprimeerd, bewerkt voor verzending zoals via een live-verbinding en vervolgens weer gedecomprimeerd voor lokale weergave.
Wanneer u de hoeveelheid compressie wilt instellen die wordt gebruikt wanneer u compress
op true
instelt. gebruikt uCamera.setQuality()
.
Parameters
compress:Boolean (default = false ) — Geeft op of een gecomprimeerde videostream (true ) of een oncomprimeerde videostream (false ) moet worden gebruikt voor een lokale weergave van hetgeen de camera ontvangt.
|
Gegenereerde uitzondering
PermissionError — De toepassing heeft geen toestemming om de camera te gebruiken.
|
Verwante API-elementen
setMode | () | methode |
public function setMode(width:int, height:int, fps:Number, favorArea:Boolean = true):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
Stelt de cameravastleggingsmodus in op de native modus die het beste overeenkomt met de opgegeven vereisten. Wanneer de camera geen native modus heeft die overeenstemt met alle doorgegeven parameters, selecteert de runtime een vastleggingsmodus die het meest overeenkomt met de gevraagde modus. Dit kan ertoe leiden dat het beeld wordt bijgesneden en dat frames wegvallen.
De runtime laat standaard zo nodig frames vallen om de afbeeldingsgrootte te handhaven. Geef false
door voor de parameter favorArea
om het aantal verwijderde frames te minimaliseren, zelfs als dit betekent dat u de grootte van de afbeelding moet beperken.
Wanneer de runtime een native modus kiest, wordt geprobeerd waar mogelijk de gevraagde hoogte-breedteverhouding te handhaven. Wanneer u bijvoorbeeld de opdracht myCam.setMode(400, 400, 30)
gebruikt en de maximale waarden voor de breedte en hoogte op de camera 320 en 288 zijn, stelt de runtime zowel de breedte als de hoogte in op 288. Wanneer u deze instellingen op dezelfde waarden instelt, behoudt de runtime de hoogte-breedteverhouding 1:1 die u hebt aangevraagd.
Gebruik de eigenschappen width
, height
en fps
om de waarden te bepalen die zijn toegewezen aan deze eigenschappen nadat de runtime de modus heeft geselecteerd die het meest overeenkomt met de aangevraagde waarden.
Wanneer u Flash Media Server gebruikt, kunt u ook afzonderlijke frames vastleggen of een fotosequentie maken. Zie NetStream.attachCamera()
voor meer informatie.
Parameters
width:int — De vereiste vastleggingsbreedte, in pixels. De standaardwaarde is 160.
| |
height:int — De vereiste vastleggingshoogte, in pixels. De standaardwaarde is 120.
| |
fps:Number — De vereiste snelheid waarmee de camera gegevens moet vastleggen, in frames per seconde. De standaardwaarde is 15.
| |
favorArea:Boolean (default = true ) — Geeft op of de breedte, de hoogte en de framesnelheid mogen worden gemanipuleerd wanneer de camera geen native modus heeft die aan de opgegeven vereisten voldoet. De standaardwaarde is true , dit betekent dat de voorkeur ligt bij het behouden van de vastleggingsgrootte; met deze parameter wordt de modus geselecteerd die het meest overeenkomt met de waarden width en height , zelfs wanneer dit een ongunstig effect op de prestaties heeft door de framesnelheid te verlagen. Wanneer u de framesnelheid wilt maximaliseren ten koste van camerahoogte en -breedte, geeft u false door als waarde voor de parameter favorArea .
|
Gegenereerde uitzondering
PermissionError — De toepassing heeft geen toestemming om de camera te gebruiken.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
Het werkgebied is zodanig ingesteld dat het niet wordt geschaald. De methode Camera.getCamera()
retourneert een referentie naar een cameraobject, of retourneert nul als er geen camera beschikbaar of geïnstalleerd is. De methode connectCamera()
wordt aangeroepen als er een camera bestaat. De methode connectCamera()
instantieert een video-object. Om de vastgelegde video van de camera weer te geven, wordt de referentie naar de videostream aan het video-object gekoppeld, en wordt het video-object aan het weergaveoverzicht toegevoegd. Er wordt eveneens een gebeurtenislistener voor een gebeurtenis MouseEvent.CLICK
ingesteld. Nadat de gebruiker op het werkgebied heeft geklikt, wordt de methode clickHandler()
aangeroepen. De methode controleert de breedte van de vastgelegde video en stelt de breedte, hoogte en de vereiste snelheid in frames per seconde van de cameravastleggingsmodus in. Deze instellingen zijn pas van kracht nadat het video-object werd verwijderd en opnieuw gecreëerd. De breedte en hoogte van de video moeten ook worden ingesteld op de breedte en hoogte van het cameraobject.
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 | () | methode |
public function setMotionLevel(motionLevel:int, timeout:int = 2000):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
Geeft op hoeveel beweging nodig is om de gebeurtenis activity
te verzenden. Stelt optioneel het aantal milliseconden in dat zonder activiteit moet verstrijken voordat de runtime de beweging als gestopt beschouwt en de gebeurtenis verzendt.
Opmerking: video kan worden weergegeven ongeacht de waarde van de parameter motionLevel
. Deze parameter bepaalt alleen wanneer en onder welke omstandigheden de gebeurtenis wordt verzonden, niet of video daadwerkelijk wordt vastgelegd of afgespeeld.
Als u wilt voorkomen dat de camera beweging detecteert, geeft u de waarde 100 door voor de parametermotionLevel
; hierdoor wordt de gebeurtenis activity
nooit verzonden. (U zou deze waarde waarschijnlijk alleen voor testdoeleinden gebruiken, bijvoorbeeld om eventuele handlers, die normaal worden geactiveerd wanneer de gebeurtenis wordt verzonden, tijdelijk uit te schakelen.)
Gebruik de eigenschap activityLevel
om de hoeveelheid beweging te bepalen die de camera momenteel detecteert. Waarden voor bewegingsgevoeligheid komen direct overeen met activiteitwaarden. Een volledig gebrek aan beweging komt overeen met de activiteitwaarde 0. Voortdurende beweging komt overeen met de activiteitwaarde 100. Uw activiteitwaarde is lager dan de waarde voor bewegingsgevoeligheid wanneer u niet beweegt. Wanneer u beweegt, overschrijden de activiteitwaarden vaak de waarde voor bewegingsgevoeligheid.
Het doel van deze methode lijkt op de methode Microphone.setSilenceLevel()
. Beide methoden worden gebruikt om op te geven wanneer de gebeurtenis activity
moet worden verzonden. Deze methoden hebben echter een ander effect op het publiceren van streams:
Microphone.setSilenceLevel()
is ontworpen om de bandbreedte te optimaliseren. Wanneer een audiostream als stil wordt beschouwd, worden geen audiogegevens verzonden. Er wordt in plaats daarvan één bericht verzonden dat aangeeft dat een stilte is gestart.Camera.setMotionLevel()
is ontworpen om beweging te detecteren en heeft geen effect op het bandbreedtegebruik. Zelfs wanneer een videostream geen beweging detecteert, wordt video verzonden.
Parameters
motionLevel:int — Geeft de hoeveelheid beweging op die is vereist om de gebeurtenis activity te verzenden. Acceptabele waarden lopen van 0 tot 100. De standaardwaarde is 50.
| |
timeout:int (default = 2000 ) — Geeft aan hoeveel milliseconden zonder activiteit moeten verstrijken voordat de runtime de activiteit als gestopt beschouwd en de gebeurtenis activity verzendt. De standaardwaarde is 2000 milliseconden (2 seconden).
|
Gegenereerde uitzondering
PermissionError — De toepassing heeft geen toestemming om de camera te gebruiken.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
De methode Camera.getCamera()
retourneert een referentie naar een cameraobject, of retourneert nul als er geen camera beschikbaar of geïnstalleerd is. De instructie if controleert of een camera beschikbaar is en roept de methode connectCamera()
aan als er een camera beschikbaar is. De methode connectCamera()
instantieert een video-object met de breedte en hoogte van de vastgelegde stream. Om de vastgelegde video van de camera weer te geven, wordt de referentie naar de videostream aan het video-object gekoppeld, en wordt het video-object aan het weergaveoverzicht toegevoegd. (Doorgaans verschijnt een dialoogvenster waarin de gebruiker wordt gevraagd de toegang tot de camera door Flash Player toe te staan of te weigeren wanneer de methode attachCamera()
wordt aangeroepen. Als de gebruiker echter de toegang heeft geweigerd en de optie Remember
heeft geselecteerd, zal het dialoogvenster niet verschijnen en wordt er niets weergegeven. Om er zeker van te kunnen zijn dat de gebruiker over de optie beschikt om de toegang tot de camera toe te staan, kunt u de methode system.Security.showSettings()
gebruiken om het dialoogvenster Flash Player Settings aan te roepen.)
Voor een minimale beweging stelt de methode setMotionLevel()
het minimale activiteitsniveau (mate van beweging) voor het aanroepen van de gebeurtenis activity in op 5. De tijd tussen het tijdstip waarop de camera stopt met het detecteren van beweging en het tijdstip waarop de gebeurtenis activity wordt aangeroepen is ingesteld op 1 seconde (1000 milliseconden). Zodra er 1 seconde zonder activiteit voorbijgaat of een activiteitsniveau van 5 wordt bereikt, wordt de gebeurtenis ActivityEvent.ACTIVITY
verzonden en wordt de methode activityHandler()
aangeroepen. De eigenschap activating
wordt ingesteld op true
en er wordt een object Timer gestart als de gebeurtenis door het activiteitsniveau werd geactiveerd. Elke seconde wordt de gebeurtenis timer van een Timer-object verzonden en wordt de methode timerHandler()
aangeroepen waarin het huidige activiteitsniveau wordt weergegeven. (Hoewel de timer wordt geactiveerd door een niveau van 5 of hoger, is het mogelijk dat het huidige activiteitsniveau dat wordt weergegeven een kleiner getal is.)
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 | () | methode |
public function setQuality(bandwidth:int, quality:int):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
Stelt de maximale bandbreedte per seconde of de vereiste beeldkwaliteit van de huidige uitgaande videofeed in. Deze methode is gewoonlijk alleen van toepassing wanneer u video verzendt via Flash Media Server.
Gebruik deze methode om op te geven welk element van de uitgaande videofeed belangrijker is voor de toepassing: bandbreedtegebruik of beeldkwaliteit.
- Geef een waarde door voor
bandwidth
en 0 voorquality
om aan te geven dat het gebruik van bandbreedte voorrang heeft. De runtime verzendt video op de hoogst mogelijke kwaliteit binnen de opgegeven bandbreedte. De runtime vermindert zo nodig de beeldkwaliteit om te voorkomen dat de opgegeven bandbreedte wordt overschreden. In het algemeen neemt de kwaliteit af naarmate de beweging toeneemt. - Geef 0 door voor
bandwidth
en een numerieke waarde voorquality
om aan te geven dat kwaliteit voorrang heeft. De runtime gebruikt zoveel bandbreedte als vereist is om de opgegeven kwaliteit te handhaven. De runtime verlaagt zo nodig de framesnelheid om de beeldkwaliteit te handhaven. In het algemeen neemt het bandbreedtegebruik toe wanneer de beweging toeneemt. - Wanneer u wilt opgeven dat zowel de bandbreedte als de kwaliteit even belangrijk zijn, geeft u numerieke waarden door voor beide parameters. De runtime verzendt video met de opgegeven kwaliteit die de opgegeven bandbreedte niet overschrijdt. De runtime verlaagt zo nodig de framesnelheid om de beeldkwaliteit te handhaven zonder de opgegeven bandbreedte te overschrijden.
Parameters
bandwidth:int — Geeft de maximale hoeveelheid bandbreedte op in bytes per seconde die de huidige uitgaande videofeed kan gebruiken. Geef 0 door voor bandwidth om op te geven dat de video zoveel bandbreedte kan gebruiken als nodig is om de waarde van quality te behouden. De standaardwaarde is 16384.
| |
quality:int — Een geheel getal dat het vereiste niveau van de beeldkwaliteit opgeeft, zoals wordt bepaald door de hoeveelheid compressie die op elk videoframe wordt toegepast. Acceptabele waarden liggen tussen 1 (laagste kwaliteit, maximale compressie) en 100 (hoogste kwaliteit, geen compressie). Geef 0 door voor quality om op te geven dat beeldkwaliteit kan variëren om te voorkomen dat de bandbreedte wordt overschreden.
|
Gegenereerde uitzondering
PermissionError — De toepassing heeft geen toestemming om de camera te gebruiken.
|
Verwante API-elementen
activity | Gebeurtenis |
flash.events.ActivityEvent
eigenschap ActivityEvent.type =
flash.events.ActivityEvent.ACTIVITY
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
Wordt verzonden wanneer een camera een sessie begint of eindigt. Roep Camera.setMotionLevel()
aan om het aantal bewegingen op te geven dat nodig is om een gebeurtenis activity
met de activating
-waarde true
te activeren, of de tijd die moet verstrijken zonder activiteit voordat een gebeurtenis activity
met de activating
-waarde false
wordt geactiveerd.
ActivityEvent.ACTIVITY
definieert de waarde van de eigenschap type
van een gebeurtenisobject activity
.
Deze gebeurtenis heeft de volgende eigenschappen:
Eigenschap | Waarde |
---|---|
activating | true wanneer het apparaat wordt geactiveerd of false wanneer deze wordt gedeactiveerd. |
bubbles | false |
cancelable | false ; er is geen standaardgedrag om te annuleren. |
currentTarget | Het object dat het gebeurtenisobject actief verwerkt met een gebeurtenislistener. |
target | Het object dat een sessie begint of beëindigt, zoals een object Camera of Microfoon. |
permissionStatus | Gebeurtenis |
flash.events.PermissionEvent
eigenschap PermissionEvent.type =
flash.events.PermissionEvent.PERMISSION_STATUS
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 24.0 |
Wordt verzonden wanneer de toepassing toestemming vraagt de camera op het apparaat te gebruiken. Controleer de waarde van de eigenschap status
om te bepalen of de toestemming is verleend of geweigerd
Verwante API-elementen
status | Gebeurtenis |
flash.events.StatusEvent
eigenschap StatusEvent.type =
flash.events.StatusEvent.STATUS
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 9, AIR (unsupported) |
Wordt verzonden wanneer een camera de status meldt. Voordat u de camera opent, geeft de runtime een dialoogvenster Privacy weer, waarmee gebruikers toegang tot hun camera kunnen toestaan of weigeren. Wanneer de waarde van de eigenschap code
Camera.Muted
is, heeft de gebruiker het SWF-bestand de toegang tot de camera van de gebruiker geweigerd. Wanneer de waarde van de eigenschap code
"Camera.Unmuted"
is, heeft de gebruiker het SWF-bestand de toegang tot de camera van de gebruiker toegestaan.
Opmerking: deze gebeurtenis wordt niet verzonden op het AIR-platform. Deze wordt alleen gebruikt in Flash Player.
Definieert de waarde van de eigenschaptype
van een gebeurtenisobject status
.
Deze gebeurtenis heeft de volgende eigenschappen:
Eigenschap | Waarde |
---|---|
bubbles | false |
cancelable | false ; er is geen standaardgedrag om te annuleren. |
code | Beschrijving van de status van het object. |
currentTarget | Het object dat het gebeurtenisobject actief verwerkt met een gebeurtenislistener. |
level | De categorie van het bericht, zoals "status" , "warning" of "error" . |
target | Het object dat zijn status rapporteert. |
Verwante API-elementen
videoFrame | Gebeurtenis |
flash.events.Event
eigenschap Event.type =
flash.events.Event.VIDEO_FRAME
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 11.4, AIR 3.4 |
Verzonden nadat een nieuw cameraframe wordt verwerkt door de runtime en beschikbaar is om te worden gekopieerd.
De constanteEvent.VIDEO_FRAME
definieert de waarde van de eigenschap type
van een videoFrame
-gebeurtenisobject.
Deze gebeurtenis heeft de volgende eigenschappen:
Eigenschap | Waarde |
---|---|
bubbles | false |
cancelable | false ; er is geen standaardgedrag om te annuleren. |
target | Het Camera-object dat deze gebeurtenis heeft verzonden. |
Verwante API-elementen
activity
wordt verzonden aan het begin en het einde (indien van toepassing) van de sessie en wordt vastgelegd door de methode activityHandler()
die informatie over de gebeurtenis weergeeft.
Opmerking: dit voorbeeld werkt alleen correct wanneer een camera op uw computer is aangesloten.
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); } } }
Wed Jun 13 2018, 11:42 AM Z