Paket | flash.media |
Klasse | public final class Camera |
Vererbung | Camera EventDispatcher Object |
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Eine Camera-Instanz erfasst Video im Querformat. Bei Geräten, die die Bildschirmausrichtung ändern können, zum Beispiel Mobiltelefone, zeigt ein an die Kamera angehängtes Video-Objekt Video im Hochformat nur in einer querformatigen Ausrichtung an. Deshalb sollten mobile Anwendungen für die Videoanzeige das Querformat verwenden und keine automatische Drehung vornehmen.
Unter iOS wird das Video von der Frontkamera gespiegelt. Unter Android ist dies nicht der Fall.
Bei mobilen Geräten mit einer Autofokuskamera ist der Autofokus automatisch aktiviert. Falls die Kamera keinen kontinuierlichen Autofokus unterstützt (was auf die Kameras vieler mobiler Geräte zutrifft), fokussiert die Kamera, wenn das Camera-Objekt an einen Videostream angehängt wird und immer, wenn die setMode()
-Methode aufgerufen wird. Bei Desktopcomputern ist das Autofokusverhalten vom Kameratreiber und den Kameraeinstellungen abhängig.
In einer AIR-Anwendung unter Android oder iOS erfasst die Kamera kein Video, wenn die AIR-Anwendung nicht aktiv und im Vordergrund ist. Außerdem können Streamingverbindungen unterbrochen werden, wenn sich die Anwendung im Hintergrund befindet. Unter iOS kann das Video von der Kamera nicht angezeigt werden, wenn eine Anwendung den GPU-Renderingmodus verwendet. Das Video von der Kamera kann aber trotzdem an einen Server gestreamt werden.
AIR-Profilunterstützung: Diese Funktion wird auf Geräten mit AIR für TV nicht unterstützt. Weitere Informationen zum API-Support über mehrere Profile finden Sie unter Unterstützung von AIR-Profilen. Beachten Sie, dass bei Geräten mit AIR für TV Camera.isSupported
den Wert true
hat, Camera.getCamera()
jedoch immer null
zurückgibt. Der Kamerazugriff wird in mobilen Browsern nicht unterstützt.
Informationen zum Erfassen von Audio finden Sie in der Beschreibung der Microphone-Klasse.
Wichtig: In der Laufzeitumgebung wird ein Zugriffsschutz-Dialogfeld angezeigt, in dem der Benutzer den Zugriff auf die Kamera zulassen oder verweigern kann. Achten Sie darauf, dass die Größe des Anwendungsfensters mindestens 215 x 138 Pixel beträgt. Dies ist die erforderliche Mindestgröße für die Anzeige des Dialogfelds.
Zum Erstellen oder Referenzieren eines Camera-Objekts, verwenden Sie die getCamera()
-Methode.
Weitere Informationen
Michael Chaize: Android, AIR, and the Camera
Verwandte API-Elemente
Eigenschaft | Definiert von | ||
---|---|---|---|
activityLevel : Number [schreibgeschützt]
Die von der Kamera erkannte Menge an Bewegung. | Camera | ||
bandwidth : int [schreibgeschützt]
Die Bandbreite (in Byte), die für den momentan ausgehenden Videofeed maximal zur Verfügung steht. | Camera | ||
constructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz. | Object | ||
currentFPS : Number [schreibgeschützt]
Die Abtastrate in Bildern pro Sekunde, mit der die Kamera Daten erfasst. | Camera | ||
fps : Number [schreibgeschützt]
Die maximale Rate in Bildern pro Sekunde, mit der die Kamera Daten erfassen kann. | Camera | ||
height : int [schreibgeschützt]
Die aktuelle Aufnahmebildhöhe in Pixel. | Camera | ||
index : int [schreibgeschützt]
Ein auf null basierender Index, der die Position der Kamera im Camera.names-Array angibt, das alle verfügbaren Kameras aufführt. | Camera | ||
isSupported : Boolean [statisch] [schreibgeschützt]
Die isSupported-Eigenschaft hat den Wert „true“, wenn die Camera-Klasse von der aktuellen Plattform unterstützt wird, andernfalls hat sie den Wert „false“. | Camera | ||
keyFrameInterval : int [schreibgeschützt]
Die Anzahl der Videobilder, die vollständig übertragen (sogenannte Keyframes) und nicht mit dem Algorithmus zur Videokomprimierung interpoliert werden. | Camera | ||
loopback : Boolean [schreibgeschützt]
Gibt an, ob eine lokale Wiedergabe der Kameraaufnahmen wie bei der Live-Übertragung mit Flash Media Server komprimiert und dekomprimiert (true) oder nicht komprimiert (false) wird. | Camera | ||
motionLevel : int [schreibgeschützt]
Die erforderliche Bewegungsstärke zum Auslösen des activity-Ereignisses. | Camera | ||
motionTimeout : int [schreibgeschützt]
Die Zeit in Millisekunden zwischen dem Zeitpunkt, zu dem die Kamera keine Bewegung mehr erfasst, und dem Zeitpunkt, zu dem das activity-Ereignis aufgerufen wird. | Camera | ||
muted : Boolean [schreibgeschützt]
Ein boolescher Wert, der angibt, ob der Benutzer im Flash Player-Dialogfeld „Zugriffsschutz“ den Zugriff auf die Kamera verweigert (true) oder gewährt (false) hat. | Camera | ||
name : String [schreibgeschützt]
Der Name der aktuellen Kamera, der von der Kamerahardware zurückgegeben wird. | Camera | ||
names : Array [statisch] [schreibgeschützt]
Ein Array mit den Namen aller verfügbaren Kameras. | Camera | ||
permissionStatus : String [statisch] [schreibgeschützt]
Bestimmen Sie, ob der Anwendung die Berechtigung zur Verwendung der Kamera erteilt wurde. | Camera | ||
position : String [schreibgeschützt]
Gibt an, auf welcher Seite des Geräts sich die Kamera befindet. | Camera | ||
quality : int [schreibgeschützt]
Die erforderliche Bildqualität, die sich aus dem Grad der Komprimierung jedes Videobilds ergibt. | Camera | ||
width : int [schreibgeschützt]
Die aktuelle Aufnahmebildbreite in Pixel. | Camera |
Methode | Definiert von | ||
---|---|---|---|
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registriert ein Ereignis-Listener-Objekt bei einem EventDispatcher-Objekt, sodass der Listener über ein Ereignis benachrichtigt wird. | EventDispatcher | ||
Füllt ein Bytearray aus einem rechteckigen Bereich von Pixeldaten. Schreibt eine vorzeichenlose Ganzzahl (einen nicht multiplizierten 32-Bit-Pixelwert) für jedes Pixel in das Bytearray. | Camera | ||
Füllt einen Vektor aus einem rechteckigen Bereich mit Pixeldaten. | Camera | ||
Sendet ein Ereignis in den Ereignisablauf. | EventDispatcher | ||
Kopiert das letzte Bild in eine Bitmap. | Camera | ||
[statisch]
Gibt eine Referenz auf ein Camera-Objekt zum Aufnehmen von Videos zurück. | Camera | ||
Überprüft, ob das EventDispatcher-Objekt Listener für einen bestimmten Ereignistyp registriert hat. | EventDispatcher | ||
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde. | Object | ||
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde. | Object | ||
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann. | Object | ||
Entfernt einen Listener aus dem EventDispatcher-Objekt. | EventDispatcher | ||
Fordert Kameraberechtigung für die Anwendung an. | Camera | ||
Gibt die Videobilder an, die vollständig übertragen (sogenannte Keyframes) und nicht mit dem Algorithmus zur Videokomprimierung interpoliert werden. | Camera | ||
Gibt an, ob ein komprimierter Videostream für die lokale Wiedergabe der Kamera verwendet wird. | Camera | ||
Legt als Kameraaufnahmemodus den systemeigenen Modus fest, mit dem die angegebenen Kriterien am besten erfüllt werden. | Camera | ||
Gibt die erforderliche Bewegungsstärke zum Auslösen des activity-Ereignisses an. | Camera | ||
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest. | Object | ||
Legt die maximale Bandbreite pro Sekunde oder die erforderliche Bildqualität des aktuell ausgehenden Videofeeds fest. | Camera | ||
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas. | Object | ||
Gibt das angegebene Objekt als String zurück. | Object | ||
Gibt den Grundwert des angegebenen Objekts zurück. | Object | ||
Überprüft, ob bei diesem EventDispatcher-Objekt oder bei einem seiner Vorgänger ein Ereignis-Listener für einen bestimmten Ereignistyp registriert ist. | EventDispatcher |
Ereignis | Übersicht | Definiert von | ||
---|---|---|---|---|
[broadcast event] Wird ausgelöst, wenn Flash Player oder eine AIR-Anwendung den Betriebssystemfokus erhält und aktiv wird. | EventDispatcher | |||
Wird ausgelöst, wenn die Sitzung einer Kamera gestartet oder beendet wird. | Camera | |||
[broadcast event] Wird ausgelöst, wenn Flash Player- oder die AIR-Anwendung den Fokus verliert und inaktiv wird. | EventDispatcher | |||
Wird abgesetzt, wenn die Anwendung die Berechtigung zur Verwendung der Kamera auf dem Gerät anfordert. | Camera | |||
Wird ausgelöst, wenn der Status einer Kamera protokolliert wird. | Camera | |||
Wird abgesetzt, nachdem ein neuer Kamera-Frame von der Laufzeit verarbeitet wurde und zum Kopieren zur Verfügung steht. | Camera |
activityLevel | Eigenschaft |
activityLevel:Number
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Die von der Kamera erkannte Menge an Bewegung. Die zulässigen Werte liegen zwischen 0 (keine erfasste Bewegung) und 100 (sehr starke Bewegung). Anhand des Werts dieser Eigenschaft können Sie ermitteln, ob eine Einstellung für die setMotionLevel()
-Methode übergeben werden muss.
Wenn die Kamera verfügbar ist, aufgrund eines nicht erfolgten Video.attachCamera()
-Aufrufs noch nicht verwendet wird, wird diese Eigenschaft auf -1 gesetzt.
Beim Streaming ausschließlich unkomprimierter lokaler Videos wird diese Eigenschaft nur dann gesetzt, wenn der Ereignisprozedur eine Funktion zugewiesen wurde. Andernfalls ist diese Eigenschaft nicht definiert.
Implementierung
public function get activityLevel():Number
Auslöser
PermissionError — Die Anwendung verfügt nicht über die Berechtigung zur Verwendung der Kamera.
|
Verwandte API-Elemente
bandwidth | Eigenschaft |
bandwidth:int
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Die Bandbreite (in Byte), die für den momentan ausgehenden Videofeed maximal zur Verfügung steht. Der Wert 0 bedeutet, dass der Feed die zur Beibehaltung der gewünschten Bildqualität erforderliche Bandbreite für Videos nutzen kann.
Legen Sie diese Eigenschaft über die setQuality()
-Methode fest.
Implementierung
public function get bandwidth():int
Auslöser
PermissionError — Die Anwendung verfügt nicht über die Berechtigung zur Verwendung der Kamera.
|
Verwandte API-Elemente
currentFPS | Eigenschaft |
currentFPS:Number
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Die Abtastrate in Bildern pro Sekunde, mit der die Kamera Daten erfasst. Diese Eigenschaft kann nicht eingestellt werden. Mit der setMode()
-Methode können Sie jedoch die verwandte Eigenschaft fps
festlegen, welche die maximale Bildrate angibt, mit der die Kamera Daten erfassen soll.
Implementierung
public function get currentFPS():Number
Auslöser
PermissionError — Die Anwendung verfügt nicht über die Berechtigung zur Verwendung der Kamera.
|
Verwandte API-Elemente
fps | Eigenschaft |
fps:Number
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Die maximale Rate in Bildern pro Sekunde, mit der die Kamera Daten erfassen kann. Die höchstmögliche Rate richtet sich nach den Möglichkeiten der Kamera; diese Bildrate wird möglicherweise nicht erzielt.
- Über die
setMode()
-Methode können Sie den gewünschten Wert für diese Eigenschaft festlegen. - Verwenden Sie die
currentFPS
-Eigenschaft, um festzustellen, mit welcher Abtastrate die Kamera derzeit Daten erfasst.
Implementierung
public function get fps():Number
Auslöser
PermissionError — Die Anwendung verfügt nicht über die Berechtigung zur Verwendung der Kamera.
|
Verwandte API-Elemente
height | Eigenschaft |
height:int
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Die aktuelle Aufnahmebildhöhe in Pixel. Über die setMode()
-Methode können Sie einen Wert für diese Eigenschaft festlegen.
Implementierung
public function get height():int
Auslöser
PermissionError — Die Anwendung verfügt nicht über die Berechtigung zur Verwendung der Kamera.
|
Verwandte API-Elemente
index | Eigenschaft |
index:int
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Ein auf null basierender Index, der die Position der Kamera im Camera.names
-Array angibt, das alle verfügbaren Kameras aufführt.
Implementierung
public function get index():int
Auslöser
PermissionError — Die Anwendung verfügt nicht über die Berechtigung zur Verwendung der Kamera.
|
Verwandte API-Elemente
isSupported | Eigenschaft |
isSupported:Boolean
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10.1, AIR 2 |
Die isSupported
-Eigenschaft hat den Wert true
, wenn die Camera-Klasse von der aktuellen Plattform unterstützt wird, andernfalls hat sie den Wert false
.
Implementierung
public static function get isSupported():Boolean
keyFrameInterval | Eigenschaft |
keyFrameInterval:int
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Die Anzahl der Videobilder, die vollständig übertragen (sogenannte Schlüsselbilder) und nicht mit dem Algorithmus zur Videokomprimierung interpoliert werden. Der Standardwert ist 15, d. h., jedes fünfzehnte Bild ist ein Schlüsselbild. Der Wert 1 bedeutet, dass jedes Bild ein Schlüsselbild ist. Zulässige Werte sind Zahlen von 1 bis 300.
Implementierung
public function get keyFrameInterval():int
Auslöser
PermissionError — Die Anwendung verfügt nicht über die Berechtigung zur Verwendung der Kamera.
|
Verwandte API-Elemente
loopback | Eigenschaft |
loopback:Boolean
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Gibt an, ob eine lokale Wiedergabe der Kameraaufnahmen wie bei der Live-Übertragung mit Flash Media Server komprimiert und dekomprimiert (true
) oder nicht komprimiert (false
) wird. Der Standardwert ist false
.
Obwohl ein komprimierter Stream für Testzwecke nützlich ist, beispielsweise bei der Vorschau der Einstellungen für die Videoqualität, entsteht dadurch ein erheblicher Verarbeitungsaufwand. Die lokale Ansicht wird komprimiert und für die Übertragung bearbeitet wie in einer Live-Verbindung und dann für die lokale Anzeige dekomprimiert.
Um diesen Wert einzustellen, verwenden Sie Camera.setLoopback()
. Wenn diese Eigenschaft auf „true“ gesetzt ist, können Sie den Komprimierungsgrad über Camera.setQuality()
festlegen.
Implementierung
public function get loopback():Boolean
Auslöser
PermissionError — Die Anwendung verfügt nicht über die Berechtigung zur Verwendung der Kamera.
|
Verwandte API-Elemente
motionLevel | Eigenschaft |
motionLevel:int
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Die erforderliche Bewegungsstärke zum Auslösen des activity
-Ereignisses. Die zulässigen Werte liegen zwischen 0 und 100. Der Standardwert ist 50.
Videos können unabhängig vom Wert der Eigenschaft motionLevel
wiedergegeben werden. Weitere Informationen hierzu finden Sie unter setMotionLevel()
.
Implementierung
public function get motionLevel():int
Auslöser
PermissionError — Die Anwendung verfügt nicht über die Berechtigung zur Verwendung der Kamera.
|
Verwandte API-Elemente
motionTimeout | Eigenschaft |
motionTimeout:int
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Die Zeit in Millisekunden zwischen dem Zeitpunkt, zu dem die Kamera keine Bewegung mehr erfasst, und dem Zeitpunkt, zu dem das activity
-Ereignis aufgerufen wird. Der Standardwert ist 2000 (2 Sekunden).
Legen Sie diesen Wert über die setMotionLevel()
-Methode fest.
Implementierung
public function get motionTimeout():int
Auslöser
PermissionError — Die Anwendung verfügt nicht über die Berechtigung zur Verwendung der Kamera.
|
Verwandte API-Elemente
muted | Eigenschaft |
muted:Boolean
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Ein boolescher Wert, der angibt, ob der Benutzer im Flash Player-Dialogfeld „Zugriffsschutz“ den Zugriff auf die Kamera verweigert (true
) oder gewährt (false
) hat. Wenn sich dieser Wert ändert, wird das status
-Ereignis ausgelöst.
Implementierung
public function get muted():Boolean
Auslöser
PermissionError — Die Anwendung verfügt nicht über die Berechtigung zur Verwendung der Kamera.
|
Verwandte API-Elemente
name | Eigenschaft |
name:String
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Der Name der aktuellen Kamera, der von der Kamerahardware zurückgegeben wird.
Implementierung
public function get name():String
Auslöser
PermissionError — Die Anwendung verfügt nicht über die Berechtigung zur Verwendung der Kamera.
|
Verwandte API-Elemente
names | Eigenschaft |
names:Array
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Ein Array mit den Namen aller verfügbaren Kameras. Beim Zugriff auf dieses Array wird nicht das Datenschutz-Dialogfeld von Flash Player angezeigt. Dieses Array stellt den auf null basierenden Index jeder Kamera sowie die Anzahl der Kameras im System (mithilfe von names.length
) bereit.
Für das Aufrufen der names
-Eigenschaft ist eine umfassende Untersuchung der Hardware erforderlich. In den meisten Fällen können Sie die Standardkamera verwenden.
Implementierung
public static function get names():Array
Auslöser
PermissionError — Die Anwendung verfügt nicht über die Berechtigung zur Verwendung der Kamera.
|
Verwandte API-Elemente
permissionStatus | Eigenschaft |
position | Eigenschaft |
position:String
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 3.0 |
Gibt an, auf welcher Seite des Geräts sich die Kamera befindet.
Verwenden Sie die position
-Eigenschaft, um zu bestimmen, ob sich die Kamera eines mobilen Geräts auf der Vorderseite oder auf der Rückseite des Geräts befindet. Die folgende Funktion überprüft jede verfügbare Kamera, bis eine Kamera an der gewünschten Position gefunden wird. Wenn es keine Kamera an der gewünschten Position gibt, wird die Standardkamera zurückgegeben.
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();
Bei mobilen Geräten ist die Kameraposition normalerweise entweder CameraPosition.FRONT
oder CameraPosition.BACK
. Wenn die Position der Kamera nicht ermittelt werden kann, wird die Position als CameraPosition.UNKNOWN
gemeldet. Bei Desktopplattformen ist die Position immer CameraPosition.UNKNOWN
.
Konstanten für die gültigen Werte dieser Eigenschaft sind in der CameraPosition-Klasse definiert
Implementierung
public function get position():String
Auslöser
PermissionError — Die Anwendung verfügt nicht über die Berechtigung zur Verwendung der Kamera.
|
Verwandte API-Elemente
quality | Eigenschaft |
quality:int
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Die erforderliche Bildqualität, die sich aus dem Grad der Komprimierung jedes Videobilds ergibt. Die zulässigen Werte liegen zwischen 1 (niedrigste Qualität, maximale Komprimierung) und 100 (höchste Qualität, keine Komprimierung). Der Standardwert ist 0, d. h., die Bildqualität kann gegebenenfalls geändert werden, damit die Bandbreite nicht überschritten wird.
Legen Sie diese Eigenschaft über die setQuality()
-Methode fest.
Implementierung
public function get quality():int
Auslöser
PermissionError — Die Anwendung verfügt nicht über die Berechtigung zur Verwendung der Kamera.
|
Verwandte API-Elemente
width | Eigenschaft |
width:int
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Die aktuelle Aufnahmebildbreite in Pixel. Über die setMode()
-Methode können Sie den gewünschten Wert für diese Eigenschaft festlegen.
Implementierung
public function get width():int
Auslöser
PermissionError — Die Anwendung verfügt nicht über die Berechtigung zur Verwendung der Kamera.
|
Verwandte API-Elemente
copyToByteArray | () | Methode |
public function copyToByteArray(rect:Rectangle, destination:ByteArray):void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 11.4, AIR 3.4 |
Füllt ein Byte-Array aus einem rechteckigen Bereich mit Pixeldaten
Schreibt eine vorzeichenlose Ganzzahl (ein nicht multiplizierter 32-Bit-Pixelwert) für jedes Pixel in das Byte-Array. Das Array wird an die erforderliche Anzahl von Bytes angepasst, um alle Pixel aufzunehmen.
Parameter
rect:Rectangle — Ein rechteckiger Bereich im aktuellen BitmapData-Objekt.
| |
destination:ByteArray — Ein Byte-Array, das die Pixel im gegebenen Rechteck repräsentiert.
|
Auslöser
PermissionError — Die Anwendung verfügt nicht über die Berechtigung zur Verwendung der Kamera.
| |
TypeError — „rect“ hat den Wert null.
| |
TypeError — Das Ziel ist null
|
Verwandte API-Elemente
copyToVector | () | Methode |
public function copyToVector(rect:Rectangle, destination:Vector.<uint>):void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 11.4, AIR 3.4 |
Füllt einen Vektor aus einem rechteckigen Bereich mit Pixeldaten.
Schreibt eine vorzeichenlose Ganzzahl (ein nicht multiplizierter 32-Bit-Pixelwert) für jedes Pixel in den Vektor. Der Vektor wird an die erforderliche Anzahl von Einträgen angepasst, um alle Pixel aufzunehmen.
Parameter
rect:Rectangle — Ein rechteckiger Bereich im aktuellen BitmapData-Objekt.
| |
destination:Vector.<uint> — Ein Vektor.<uint>, das die Pixel im gegebenen Rechteck repräsentiert.
|
Auslöser
PermissionError — Die Anwendung verfügt nicht über die Berechtigung zur Verwendung der Kamera.
| |
TypeError — „rect“ hat den Wert null.
| |
TypeError — Das Ziel ist null
|
Verwandte API-Elemente
drawToBitmapData | () | Methode |
public function drawToBitmapData(destination:BitmapData):void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 11.4, AIR 3.4 |
Kopiert das letzte Bild in eine Bitmap.
Mit dieser Methode wird der Inhalt des letzten Bilds in eine BitmapData-Instanz kopiert.
Parameter
destination:BitmapData — Ein BitmapData-Instanzobjekt, um den letzten Frame aufzunehmen.
|
Auslöser
ArgumentError — kInvalidBitmapDataError, wenn destination zu klein ist
|
Verwandte API-Elemente
getCamera | () | Methode |
public static function getCamera(name:String = null):Camera
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Gibt eine Referenz auf ein Camera-Objekt zum Aufnehmen von Videos zurück. Um mit der Videoaufnahme zu beginnen, muss das Camera-Objekt mit einem Videoobjekt verknüpft werden (siehe Video.attachCamera()
). Wenn Sie Video an Flash Media Server übertragen möchten, rufen Sie NetStream.attachCamera()
auf, um das Camera-Objekt mit einem NetStream-Objekt zu verknüpfen.
Mehrere Aufrufe der getCamera()
-Methode verweisen auf denselben Kameratreiber. Wenn der Code Elemente wie firstCam:Camera = getCamera()
und secondCam:Camera = getCamera()
enthält, verweisen firstCam
und secondCam
somit auf dieselbe Kamera, bei der es sich um die Standardkamera des Benutzers handelt.
Bei mobilen Geräten, die sowohl über eine nach vorn als auch über eine nach hinten gerichtete Kamera verfügen, können Sie jeweils nur von einer Kamera Video erfassen.
Im Allgemeinen muss kein Wert für den name
-Parameter übergeben werden. Verwenden Sie einfach getCamera()
, um einen Verweis auf die Standardkamera zurückzugeben. Im Bedienfeld für die Kameraeinstellungen kann der Benutzer eine Standardkamera angeben (Informationen hierzu weiter unten in diesem Abschnitt).
Sie können ActionScript nicht verwenden, um die Berechtigungseinstellung „Zulassen“ oder „Verweigern“ für den Kamerazugriff festzulegen, Sie können jedoch das Adobe Flash Player Dialogfeld für die Kameraeinstellungen anzeigen, in dem der Benutzer den Kamerazugriff steuern kann. Wenn eine SWF-Datei mit der attachCamera()
-Methode versucht, die von der getCamera()
-Methode zurückgegebene Kamera mit einem Video- oder NetStream-Objekt zu verbinden, zeigt Flash Player ein Dialogfeld an, in dem der Benutzer den Zugriff auf die Kamera zulassen oder verweigern kann. (Achten Sie darauf, dass die Größe des Anwendungsfensters mindestens 215 x 138 Pixel beträgt. Dies ist die in Flash Player erforderliche Mindestgröße für die Anzeige des Dialogfelds.) Nachdem der Benutzer im Dialogfeld für die Kameraeinstellungen eine Option ausgewählt hat, wird in Flash Player ein Informationsobjekt im status
-Ereignis zurückgegeben, das die Auswahl des Benutzers angibt. Mit Camera.muted
wird angegeben, dass der Benutzer den Zugriff auf eine Kamera verweigert hat. Mit Camera.Unmuted
wird angegeben, dass der Benutzer den Zugriff auf eine Kamera gewährt hat. Über die muted
-Eigenschaft können Sie ohne Bearbeitung des status
-Ereignisses feststellen, ob ein Benutzer den Zugriff auf eine Kamera verweigert oder gewährt hat.
In Flash Player kann der Benutzer permanente Zugriffsschutzeinstellungen für eine bestimmte Domäne festlegen, indem er während des Abspielens einer SWF-Datei mit der rechten Maustaste (Windows und Linux) bzw. bei gedrückter Ctrl-Taste (Mac OS) klickt, „Einstellungen“ auswählt, das Dialogfeld „Zugriffsschutz“ öffnet und „Speichern“ auswählt. Wenn ein Benutzer „Speichern“ auswählt, wird er in Flash Player nicht mehr dazu aufgefordert, den Zugriff von SWF-Dateien in der Domäne auf die Kamera zu gewähren oder zu verweigern.
Hinweis: Die attachCamera()
-Methode ruft das Dialogfeld zum Zulassen oder Verweigern des Zugriffs auf die Kamera nicht auf, wenn der Benutzer den Zugriff verweigert hat, indem er in den Flash Player-Einstellungen die Einstellung „Speichern“ gewählt hat. In diesem Fall können Sie den Benutzer auffordern, die Einstellung „Zulassen“ oder „Verweigern“ zu ändern, indem Sie mit Security.showSettings(SecurityPanel.PRIVACY)
das Bedienfeld „Zugriffsschutz“ von Flash Player für den Benutzer anzeigen.
Wenn getCamera()
den Wert null
zurückgibt, wird die Kamera entweder gerade in einer anderen Anwendung verwendet oder im System sind keine Kameras installiert. Mithilfe der names.length
-Eigenschaft können Sie feststellen, ob Kameras installiert sind. Um das Kameraeinstellungsbedienfeld von Flash Player anzuzeigen, in dem der Benutzer die Kamera wählen kann, die von getCamera()
referenziert werden soll, verwenden Sie Security.showSettings(SecurityPanel.CAMERA)
.
Der Suchlauf zum Überprüfen der Hardware auf installierte Kameras kann einige Zeit in Anspruch nehmen. Wenn die Laufzeitumgebung mindestens eine Kamera gefunden hat, wird der Suchlauf für diese Player-Instanz nicht noch einmal durchgeführt. Wenn die Laufzeitumgebung jedoch keine Kameras findet, wird der Suchlauf bei jedem Aufruf von getCamera
durchgeführt. Diese Funktion ist besonders hilfreich, wenn eine Kamera zwar vorhanden, aber deaktiviert ist. Sofern Ihre SWF-Datei eine Schaltfläche „Wiederholen“ besitzt, mit der getCamera
aufgerufen wird, kann Flash Player nach der Kamera suchen, ohne dass die SWF-Datei erneut gestartet werden muss.
Parameter
name:String (default = null ) — Gibt die abzurufende Kamera an, die in dem von der names -Eigenschaft zurückgegebenen Array festgelegt ist. In den meisten Anwendungen können Sie die Standardkamera durch Weglassen dieses Parameters abrufen. Um einen Wert für diesen Parameter festzulegen, verwenden Sie die Stringrepräsentation der auf Null basierenden Indexposition innerhalb des Camera.names-Arrays. Wenn Sie zum Beispiel die dritte Kamera im Array angeben möchten, verwenden Sie Camera.getCamera("2") .
|
Camera — Wenn der name -Parameter nicht angegeben ist, gibt diese Methode einen Verweis auf die Standardkamera zurück, oder, wenn diese in einer anderen Kamera verwendet wird, auf die erste verfügbare Kamera. (Wenn mehrere Kameras installiert sind, kann der Benutzer im Flash Player-Bedienfeld für die Kameraeinstellungen die Standardkamera festlegen.) Wenn keine Kameras verfügbar oder installiert sind, gibt diese Methode den Wert null zurück.
|
Ereignisse
status: — Wird ausgelöst, wenn der Status einer Kamera protokolliert wird. Vor dem Zugriff auf eine Kamera zeigt Flash Player ein Datenschutz-Dialogfeld an, in dem Benutzer den Zugriff auf die Kamera zulassen oder verweigern können. Wenn der Wert der code -Eigenschaft auf "Camera.Muted" gesetzt ist, hat der Benutzer den Zugriff der SWF-Datei auf die Kamera verweigert. Wenn der Wert der code -Eigenschaft auf "Camera.Unmuted" gesetzt ist, hat der Benutzer den Zugriff der SWF-Datei auf die Kamera gewährt.
|
Verwandte API-Elemente
Beispiel ( Verwendung dieses Beispiels )
Die Camera.getCamera()
-Methode gibt einen Verweis auf ein Kameraobjekt zurück oder null, falls keine Kamera verfügbar oder installiert ist. Mit der if-Anweisung wird überprüft, ob die Kamera gefunden wurde und ob der Benutzer den Zugriff auf die Kamera zugelassen hat. Wenn der Benutzer den Zugriff verweigert hat, ist die muted
-Eigenschaft mit dem Wert true
belegt.
Wenn die attachCamera()
-Methode aufgerufen wird, wird ein Dialogfeld angezeigt und fordert den Benutzer auf, den Flash Player-Zugriff auf die Kamera zuzulassen oder zu verweigern. Hat der Benutzer jedoch den Zugriff verweigert und die Option Erinnern
gewählt, wird das Dialogfeld nicht geöffnet und es wird nichts angezeigt. Um sicherzustellen, dass der Benutzer die Möglichkeit hat, den Zugriff auf die Kamera zuzulassen, weist das Textfeld myTextField
den Benutzer an, auf das Textfeld zu klicken, um die Flash Player-Einstellungen anzuzeigen.
Die clickHandler()
-Methode ruft die Security.showSettings()
-Methode auf, die das Bedienfeld Zugriffsschutz
des Dialogfelds „Einstellungen“ anzeigt. Wenn der Benutzer den Zugriff zulässt, wird das StatusEvent.STATUS
-Ereignis ausgelöst und der Wert der code
-Eigenschaft des Ereignisses wird auf Camera.Unmuted
gesetzt. (Die mute
-Eigenschaft des Kameraobjekts ist ebenfalls auf false
gesetzt.)
Die statusHandler()
-Methode, die hinzugefügt wird, um die Statusänderung der Benutzereinstellung zu überprüfen, ruft die connectCamera()
-Methode auf, wenn der Benutzer den Zugriff zulässt. Die connectCamera()
-Methode instanziiert ein Videoobjekt mit der Breite und Höhe des erfassten Streams. Um das von der Kamera erfasste Video anzuzeigen, wird der Verweis auf den Videostream zum Videoobjekt hinzugefügt und das Videoobjekt wird der Anzeigeliste hinzugefügt.
Ein Timerobjekt wird ebenfalls gestartet. Jede Sekunde wird ein Timerereignis eines Timerobjekts ausgelöst und die timerHandler()
-Methode wird aufgerufen. Die timerHandler()
-Methode wird angezeigt und aktualisiert mehrere Eigenschaften des Camera-Objekts.
Hinweis: In diesem Beispiel wird nur die currentFPS
-Eigenschaft geändert.
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
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 24.0 |
Fordert Kameraberechtigung für die Anwendung an.
Ereignisse
PermissionStatus: — wird abgesetzt, wenn die angeforderte Berechtigung vom Benutzer gewährt/abgelehnt wird.
|
setKeyFrameInterval | () | Methode |
public function setKeyFrameInterval(keyFrameInterval:int):void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Gibt die Videobilder an, die vollständig übertragen (sogenannte Schlüsselbilder) und nicht mit dem Algorithmus zur Videokomprimierung interpoliert werden. Diese Methode ist nur bei der Übertragung von Videos über Flash Media Server anwendbar.
Mit dem Algorithmus zur Videokomprimierung in Flash werden Videos so komprimiert, dass nur die ab dem letzten Bild eines Videos geänderten Bildbereiche übertragen werden. Diese Abschnitte werden als interpolierte Bilder bezeichnet. Bilder eines Videos können entsprechend dem Inhalt des vorherigen Bilds interpoliert werden. Bei einem Schlüsselbild handelt es sich jedoch um ein vollständiges Videobild, das nicht aus vorherigen Bildern interpoliert wurde.
Berücksichtigen Sie zum Festlegen eines Werts für den keyFrameInterval
-Parameter die Bandbreitennutzung und den Zugriff auf die Videowiedergabe. Durch die Angabe eines höheren Werts für keyFrameInterval
(weniger häufiges Senden von Schlüsselbildern) wird beispielsweise die Bandbreitennutzung verringert. Dadurch wird jedoch möglicherweise die erforderliche Zeit zum Positionieren des Abspielkopfes an einem bestimmten Punkt im Video erhöht. Unter Umständen muss eine höhere Anzahl Videobilder interpoliert werden, damit die Wiedergabe des Videos fortgesetzt werden kann.
Durch die Angabe eines niedrigen Werts für keyFrameInterval
(häufiges Senden von Schlüsselbildern) wird dagegen die Bandbreitennutzung erhöht, da häufiger vollständige Videobilder übertragen werden. Gleichzeitig wird möglicherweise jedoch die erforderliche Zeit zum Suchen eines bestimmten Videobilds in einem aufgenommenen Video verringert.
Parameter
keyFrameInterval:int — Ein Wert, mit dem die Videobilder angegeben werden, die vollständig (als Schlüsselbilder) übertragen und nicht mit dem Algorithmus zur Videokomprimierung interpoliert werden. Beim Wert 1 ist jedes Bild ein Schlüsselbild, beim Wert 3 ist jedes dritte Bild ein Schlüsselbild usw. Die zulässigen Werte liegen zwischen 1 und 48.
|
Auslöser
PermissionError — Die Anwendung verfügt nicht über die Berechtigung zur Verwendung der Kamera.
|
Verwandte API-Elemente
setLoopback | () | Methode |
public function setLoopback(compress:Boolean = false):void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Gibt an, ob ein komprimierter Videostream für die lokale Wiedergabe der Kamera verwendet wird. Diese Methode kann nur bei der Übertragung von Videos mit Flash Media Server angewendet werden. Durch Setzen von compress
auf true
kann präziser angezeigt werden, wie ein Video bei der Wiedergabe in Echtzeit wiedergegeben wird.
Obwohl ein komprimierter Stream für Testzwecke nützlich ist, beispielsweise bei der Vorschau der Einstellungen für die Videoqualität, entsteht dadurch ein erheblicher Verarbeitungsaufwand. Die lokale Wiedergabe wird nicht einfach nur komprimiert, sie wird komprimiert, wie bei einer Live-Verbindung für die Übertragung bearbeitet und dann für die lokale Wiedergabe dekomprimiert.
Wenn Sie compress
auf true
setzen, können Sie die Stärke der Komprimierung über Camera.setQuality()
festlegen.
Parameter
compress:Boolean (default = false ) — Gibt an, ob für die lokale Wiedergabe der Kameraaufnahmen ein komprimierter Videostream (true ) oder ein unkomprimierter Stream (false ) verwendet wird.
|
Auslöser
PermissionError — Die Anwendung verfügt nicht über die Berechtigung zur Verwendung der Kamera.
|
Verwandte API-Elemente
setMode | () | Methode |
public function setMode(width:int, height:int, fps:Number, favorArea:Boolean = true):void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Legt als Kameraaufnahmemodus den systemeigenen Modus fest, mit dem die angegebenen Kriterien am besten erfüllt werden. Wenn die Kamera über keinen systemeigenen Modus verfügt, der mit allen übergebenen Parametern übereinstimmt, wird in der Laufzeitumgebung ein Aufnahmemodus ausgewählt, der dem gewünschten Modus am ehesten entspricht. Bei diesem Vorgang werden möglicherweise Teile des Videobilds abgeschnitten sowie Bilder übersprungen.
Standardmäßig überspringt die Laufzeitumgebung Bilder, sofern dies zum Beibehalten der gewünschten Bildgröße erforderlich ist. Um die Anzahl der übersprungenen Bilder zu minimieren, auch wenn dazu ggf. die Bildgröße reduziert werden muss, übergeben Sie den Wert false
für den Parameter favorArea
.
Bei Auswahl eines systemeigenen Modus wird in der Laufzeitumgebung versucht, das gewünschte Bildseitenverhältnis möglichst beizubehalten. Wenn Sie beispielsweise den Befehl myCam.setMode(400, 400, 30)
ausgeben und die maximalen Werte der Kamera für Breite und Höhe 320 und 288 betragen, werden in der Laufzeitumgebung sowohl die Breite als auch die Höhe auf den Wert 288 gesetzt. So wird in der Laufzeitumgebung das gewünschte Bildseitenverhältnis von 1:1 beibehalten.
Wenn Sie überprüfen möchten, welche Werte diesen Eigenschaften zugewiesen wurden, nachdem in der Laufzeitumgebung der Modus ausgewählt wurde, der den gewünschten Werten am nächsten kommt, verwenden Sie die Eigenschaften width
, height
und fps
.
Wenn Sie Flash Media Server verwenden, können Sie auch einzelne Bilder erfassen oder Zeitrafferaufnahmen erstellen. Weitere Informationen finden Sie unter NetStream.attachCamera()
.
Parameter
width:int — Die erforderliche Aufnahmebildbreite in Pixel. Der Standardwert ist 160.
| |
height:int — Die angeforderte Aufnahmebildhöhe in Pixel. Der Standardwert ist 120.
| |
fps:Number — Die erforderliche Rate in Bildern pro Sekunde, mit der die Kamera Daten erfassen soll. Der Standardwert ist 15.
| |
favorArea:Boolean (default = true ) — Gibt an, ob die Breite, Höhe und Bildrate geändert werden sollen, wenn die Kamera über keinen systemeigenen Modus verfügt, mit dem die angegebenen Kriterien erfüllt werden. Der Standardwert ist true , dabei hat die gewünschte Bildgröße Vorrang. Bei diesem Parameter wird der Modus ausgewählt, der den Werten width und height am nächsten kommt, auch wenn dadurch die Bildrate reduziert und die Leistung verschlechtert wird. Soll die Bildrate Vorrang vor den Werten für Höhe und Breite haben, übergeben Sie den Wert false für den ParameterfavorArea .
|
Auslöser
PermissionError — Die Anwendung verfügt nicht über die Berechtigung zur Verwendung der Kamera.
|
Verwandte API-Elemente
Beispiel ( Verwendung dieses Beispiels )
Die Bühne ist festgelegt und wird somit nicht skaliert. Die Camera.getCamera()
-Methode gibt einen Verweis auf ein Kameraobjekt zurück oder null, falls keine Kamera verfügbar oder installiert ist. Falls eine Kamera vorhanden ist, wird die connectCamera()
-Methode aufgerufen. Die connectCamera()
-Methode instanziiert ein Videoobjekt. Um das von der Kamera erfasste Video anzuzeigen, wird der Verweis auf den Videostream zum Videoobjekt hinzugefügt und das Videoobjekt wird der Anzeigeliste hinzugefügt. Ein Ereignis-Listener für ein MouseEvent.CLICK
-Ereignis wird ebenfalls eingerichtet. Nachdem der Benutzer auf die Bühne geklickt hat, wird die Methode clickHandler()
aufgerufen. Die Methode überprüft die Breite des erfassten Videos und legt die Breite, die Höhe und die Anforderungsrate für Bilder pro Sekunde für den Aufnahmemodus der Kamera fest. Damit diese Einstellungen wirksam werden, muss das Videoobjekt entfernt und neu erstellt werden. Die Breite und die Höhe des Videos muss auf die Breite und Höhe des Kameraobjekts eingestellt werden.
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
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Gibt die erforderliche Bewegungsstärke zum Auslösen des activity
-Ereignisses an. Gibt optional die Zeit in Millisekunden an, die ohne Aktivität vergehen muss, bevor in der Laufzeitumgebung keine Bewegung mehr festgestellt und das Ereignis ausgelöst wird.
Hinweis: Videos können unabhängig vom Wert des motionLevel
-Parameters wiedergegeben werden. Dieser Parameter legt nur fest, wann und unter welchen Umständen das Ereignis ausgelöst wird, nicht jedoch, ob tatsächlich Videodaten aufgezeichnet oder wiedergegeben werden.
Wenn die Kamera überhaupt keine Bewegung erkennen soll, legen Sie für den motionLevel
-Parameter den Wert 100 fest. Das activity
-Ereignis wird dann nie ausgelöst. (Dieser Wert wird wahrscheinlich nur für Testzwecke verwendet, beispielsweise um vorübergehend alle Prozeduren zu deaktivieren, die bei diesem Ereignis normalerweise ausgelöst werden.)
Über die activityLevel
-Eigenschaft können Sie feststellen, welche Bewegungsstärke derzeit mit der Kamera erkannt wird. Die Bewegungstoleranzwerte entsprechen direkt den Aktivitätswerten. Völliges Fehlen von Bewegung entspricht dem Aktivitätswert 0. Ständige Bewegung entspricht dem Aktivitätswert 100. Bei fehlender Bewegung ist der Aktivitätswert niedriger als die Bewegungstoleranz, bei Bewegung übersteigen die Aktivitätswerte häufig die Bewegungstoleranz.
Diese Methode ähnelt Microphone.setSilenceLevel()
. Mit beiden Methoden wird angegeben, zu welchem Zeitpunkt das activity
-Ereignis ausgelöst werden soll. Diese Methoden haben jedoch deutlich unterschiedliche Auswirkungen auf das Veröffentlichen von Streams:
Microphone.setSilenceLevel()
dient zur Optimierung der Bandbreite. Wenn ein Audiostream als lautlos eingestuft wird, werden keine Audiodaten gesendet. Stattdessen wird eine Meldung gesendet, um den Beginn der Inaktivität (Stille) anzuzeigen.Camera.setMotionLevel()
ist dazu bestimmt, Bewegung festzustellen und hat keinen Einfluss auf die Bandbreitenauslastung. Auch wenn ein Videostream keine Bewegung feststellt, werden weiterhin Videodaten gesendet.
Parameter
motionLevel:int — Gibt die erforderliche Bewegungsstärke zum Auslösen des activity -Ereignisses an. Die zulässigen Werte liegen zwischen 0 und 100. Der Standardwert ist 50.
| |
timeout:int (default = 2000 ) — Gibt die Zeit in Millisekunden an, die ohne Aktivität vergehen muss, bevor die Laufzeitumgebung keine Aktivität mehr feststellt und das activity -Ereignis ausgelöst wird. Der Standardwert ist 2000 Millisekunden (2 Sekunden).
|
Auslöser
PermissionError — Die Anwendung verfügt nicht über die Berechtigung zur Verwendung der Kamera.
|
Verwandte API-Elemente
Beispiel ( Verwendung dieses Beispiels )
Die Camera.getCamera()
-Methode gibt einen Verweis auf ein Kameraobjekt zurück oder null, falls keine Kamera verfügbar oder installiert ist. Die if-Anweisung überprüft, ob eine Kamera verfügbar ist und ruft die connectCamera()
-Methode auf, wenn dies der Fall ist. Die connectCamera()
-Methode instanziiert ein Videoobjekt mit der Breite und Höhe des erfassten Streams. Um das von der Kamera erfasste Video anzuzeigen, wird der Verweis auf den Videostream zum Videoobjekt hinzugefügt und das Videoobjekt wird der Anzeigeliste hinzugefügt. (Wenn die attachCamera()
-Methode aufgerufen wird, wird ein Dialogfeld angezeigt und fordert den Benutzer auf, den Flash Player-Zugriff auf die Kamera zuzulassen oder zu verweigern. Hat der Benutzer jedoch den Zugriff verweigert und die Option Erinnern
gewählt, wird das Dialogfeld nicht geöffnet und es wird nichts angezeigt. Um sicherzustellen, dass der Benutzer die Möglichkeit hat, den Zugriff auf die Kamera zuzulassen, rufen Sie mit der system.Security.showSettings()
-Methode das Flash Player-Dialogfeld „Einstellungen“ auf.)
Die setMotionLevel()
-Methode legt die Aktivitätsstufe (Bewegungsstärke) auf 5 für minimale Bewegung fest, bevor das Aktivitätsereignis aufgerufen wird. Die Zeit zwischen dem Zeitpunkt, zu dem die Kamera mit dem Erkennen der Bewegung aufhört, und dem Auslösen des Aktivitätsereignisses ist auf 1 Sekunde (1000 Millisekunden) festgelegt. Wenn 1 Sekunde ohne Aktivität verstreicht oder die Aktivitätsstufe 5 erreicht wird, wird das ActivityEvent.ACTIVITY
-Ereignis ausgelöst und die activityHandler()
-Methode aufgerufen. Wenn das Ereignis durch die Aktivitätsstufe ausgelöst wurde, wird die activating
-Eigenschaft auf true
gesetzt und ein Timerobjekt gestartet. Jede Sekunde wird ein Timerereignis für das Timerobjekt ausgelöst und die timerHandler()
-Methode wird aufgerufen, die die aktuelle Aktivitätsstufe anzeigt. (Auch wenn der Timer durch die Stufe 5 oder höher ausgelöst wird, kann die angezeigte Aktivitätsstufe darunter liegen.)
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
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Legt die maximale Bandbreite pro Sekunde oder die erforderliche Bildqualität des aktuell ausgehenden Videofeeds fest. Diese Methode ist in der Regel nur bei der Übertragung von Videos über Flash Media Server anwendbar.
Mit dieser Methode können Sie festlegen, ob die Ausnutzung der Bandbreite oder die Bildqualität des ausgehenden Videofeeds für die Anwendung Vorrang haben soll.
- Soll die Ausnutzung der Bandbreite Vorrang haben, geben Sie einen Wert für
bandwidth
an und belegenquality
mit dem Wert 0. Die Laufzeitumgebung überträgt Video dann innerhalb der angegebenen Bandbreite mit der bestmöglichen Qualität. Die Bildqualität wird von der Laufzeitumgebung gegebenenfalls verringert, um eine Überschreitung der angegebenen Bandbreite zu verhindern. Allgemein gilt, dass bei stärkerer Bewegung die Qualität abnimmt. - Soll die Qualität Vorrang haben, belegen Sie
bandwidth
mit dem Wert 0 und geben fürquality
einen numerischen Wert an. Die Laufzeitumgebung verwendet dann so viel Bandbreite, wie zum Beibehalten der angegebenen Qualität erforderlich ist. Die Framerate wird von der Laufzeitumgebung gegebenenfalls verringert, um die Bildqualität beizubehalten. Allgemein gilt, dass sich bei stärkerer Bewegung auch die Nutzung der Bandbreite erhöht. - Übergeben Sie numerische Werte für beide Parameter, um anzugeben, dass Bandbreite und Bildqualität gleichermaßen wichtig sind. Die Laufzeitumgebung überträgt Video mit der angegebenen Qualität, ohne die angegebene Bandbreite zu überschreiten. Die Framerate wird von der Laufzeitumgebung gegebenenfalls verringert, um die Bildqualität ohne Überschreiten der angegebenen Bandbreite beizubehalten.
Parameter
bandwidth:int — Gibt die maximale Bandbreitennutzung für den aktuell ausgehenden Videofeed in Byte pro Sekunde an. Wenn für Videos so viel Bandbreite verwendet werden soll, wie für die gewünschte Qualität (quality ) erforderlich ist, belegen Sie bandwidth mit dem Wert 0. Der Standardwert ist 16384.
| |
quality:int — Eine Ganzzahl, die die erforderliche Bildqualität angibt, die sich aus dem Grad der Komprimierung aller Videobilder ergibt. Die zulässigen Werte liegen zwischen 1 (niedrigste Qualität, maximale Komprimierung) und 100 (höchste Qualität, keine Komprimierung). Soll die Bildqualität bei Bedarf geändert werden, um eine Überschreitung der Bandbreite zu verhindern, belegen Sie quality mit 0.
|
Auslöser
PermissionError — Die Anwendung verfügt nicht über die Berechtigung zur Verwendung der Kamera.
|
Verwandte API-Elemente
activity | Ereignis |
flash.events.ActivityEvent
Eigenschaft ActivityEvent.type =
flash.events.ActivityEvent.ACTIVITY
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Wird ausgelöst, wenn die Sitzung einer Kamera gestartet oder beendet wird. Rufen Sie Camera.setMotionLevel()
auf, um festzulegen, wie viel Bewegung nötig ist, damit ein activity
-Ereignis mit einem activating
-Wert von true
ausgelöst wird, oder um festzulegen, wie viel Zeit ohne Aktivität vergehen muss, bevor ein activity
-Ereignis mit einem activating
-Wert von false
ausgelöst wird.
ActivityEvent.ACTIVITY
definiert den Wert der type
-Eigenschaft eines activity
-Ereignisobjekts.
Dieses Ereignis verfügt über die folgenden Eigenschaften:
Eigenschaft | Wert |
---|---|
activating | true , wenn das Gerät aktiviert wird, oder false , wenn es deaktiviert wird. |
bubbles | false |
cancelable | false . Es gibt kein Standardverhalten, das abgebrochen werden kann. |
currentTarget | Das Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet. |
target | Das Objekt, mit dem eine Sitzung gestartet oder beendet wird, z. B. ein Camera- oder Microphone-Objekt. |
permissionStatus | Ereignis |
flash.events.PermissionEvent
Eigenschaft PermissionEvent.type =
flash.events.PermissionEvent.PERMISSION_STATUS
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 24.0 |
Wird abgesetzt, wenn die Anwendung die Berechtigung zur Verwendung der Kamera auf dem Gerät anfordert. Überprüfen Sie den Wert der Eigenschaft Status
, um festzustellen, ob die Berechtigung gewährt oder verweigert wurde.
Verwandte API-Elemente
status | Ereignis |
flash.events.StatusEvent
Eigenschaft StatusEvent.type =
flash.events.StatusEvent.STATUS
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 9, AIR (unsupported) |
Wird ausgelöst, wenn der Status einer Kamera protokolliert wird. Vor dem Zugriff auf eine Kamera zeigt die Laufzeitumgebung ein Datenschutz-Dialogfeld an, in dem Benutzer den Zugriff auf die Kamera zulassen oder verweigern können. Wenn der Wert der code
-Eigenschaft auf "Camera.Muted"
gesetzt ist, hat der Benutzer den Zugriff der SWF-Datei auf die Kamera verweigert. Wenn der Wert der code
-Eigenschaft auf "Camera.Unmuted"
gesetzt ist, hat der Benutzer den Zugriff der SWF-Datei auf die Kamera gewährt.
Hinweis: Dieses Ereignis wird auf der AIR-Plattform nicht abgesetzt. Es wird nur in Flash Player verwendet.
Definiert den Wert der Eigenschafttype
eines status
-Ereignisobjekts.
Dieses Ereignis verfügt über die folgenden Eigenschaften:
Eigenschaft | Wert |
---|---|
bubbles | false |
cancelable | false . Es gibt kein Standardverhalten, das abgebrochen werden kann. |
code | Eine Beschreibung des Objektstatus. |
currentTarget | Das Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet. |
Ebene | Die Kategorie der Meldung, z. B. "status" , "warning" oder "error" . |
target | Das Objekt, dessen Status gemeldet wird. |
Verwandte API-Elemente
videoFrame | Ereignis |
flash.events.Event
Eigenschaft Event.type =
flash.events.Event.VIDEO_FRAME
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 11.4, AIR 3.4 |
Wird abgesetzt, nachdem ein neuer Kamera-Frame von der Laufzeit verarbeitet wurde und zum Kopieren zur Verfügung steht.
DieEvent.VIDEO_FRAME
-Konstante definiert den Wert der type
-Eigenschaft eines videoFrame
-Ereignisobjekts.
Dieses Ereignis verfügt über die folgenden Eigenschaften:
Eigenschaft | Wert |
---|---|
bubbles | false |
cancelable | false . Es gibt kein Standardverhalten, das abgebrochen werden kann. |
target | Das Camera-Objekt, das dieses Ereignis abgesetzt hat. |
Verwandte API-Elemente
activity
wird am Anfang und Ende (falls vorhanden) der Sitzung ausgelöst und von der Methode activityHandler()
erfasst, woraufhin Informationen zum Ereignis ausgedruckt werden.
Hinweis: Dieses Beispiel kann nur dann korrekt nachvollzogen werden, wenn eine Kamera mit dem Computer verbunden ist.
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, 10:04 AM Z