Paket | flash.media |
Sınıf | public final class Camera |
Miras Alma | Camera EventDispatcher Object |
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9 |
Bir Camera örneği, yatay en boy oranında video yakalar. Cep telefonları gibi, ekran yönlendirmesini değiştirebilen aygıtlarda, kameraya bağlı bir Video nesnesi yalnızca yatay en boy oranlı bir yönlendirmede dikey video gösterir. Bu yüzden, mobil uygulamaların video görüntülerken yatay bir yönlendirme kullanması ve otomatik döndürme işlemi gerçekleştirmemesi gerekir.
iOS sisteminde ön kameradan gelen video yansıtılır. Android sisteminde ise yansıtılmaz.
Otomatik odaklanma özelliğine sahip kamerası bulunan mobil cihazlarda otomatik odaklanma otomatik olarak etkinleştirilir. Kamera sürekli otomatik odaklamayı desteklemiyorsa (birçok mobil aygıtın kamerası desteklemez), kamera Camera nesnesi bir video akışına bağlandığında ve setMode()
yöntemi çağrıldığında odaklanır. Masaüstü bilgisayarlarda otomatik odaklanma davranışı, kamera sürücüsüne ve ayarlara bağlıdır.
Bir AIR uygulamasında veya Android ve iOS uygulamasında, AIR uygulaması etkin ön plan uygulaması değilken kamera video yakalamaz. Ayrıca uygulama arka plandayken akış bağlantıları kaybedilebilir. iOS uygulamasında, bir uygulama GPU oluşturma modunu kullandığında, kamera videosu görüntülenemez. Ancak kamera videosunun bir sunucuya akışı yapılabilir.
AIR profili desteği: Bu özellik AIR for TV aygıtlarında desteklenmez. Birden fazla profilde API desteği ile ilgili daha fazla bilgi için bkz. AIR Profil Desteği. AIR for TV aygıtlarında, Camera.isSupported
öğesinin true
olduğunu, ancak Camera.getCamera()
öğesinin her zaman null
değeri döndürdüğünü aklınızda bulundurun. Kamera erişimi mobil tarayıcılarda desteklenmez.
Ses yakalama hakkında bilgi almak için Microphone sınıfına bakın.
Önemli: Çalışma zamanı, kullanıcının kameraya erişilmesine izin verip vermemeyi seçmesini sağlayan bir Gizlilik iletişim kutusunu görüntüler. Pencerenizin boyutunun en az 215 x 138 piksel olduğundan emin olun; bu değer, iletişim kutusunu görüntülemek için gerekli minimum boyuttur.
Bir Camera nesnesi oluşturmak veya bu nesneye başvurmak için getCamera()
yöntemini kullanın.
Daha fazla bilgi
Michael Chaize: Android, AIR, and the Camera (Android, AIR ve Kamera)
İlgili API Öğeleri
Özellik | Tanımlayan: | ||
---|---|---|---|
activityLevel : Number [salt okunur]
Kameranın algıladığı hareket miktarı. | Camera | ||
bandwidth : int [salt okunur]
Gitmekte olan video akışının kullanabileceği bayt cinsinden maksimum bant genişliği miktarı. | Camera | ||
constructor : Object
Belirli bir nesne örneği için sınıf nesnesine veya yapıcı işlevine bir başvuru. | Object | ||
currentFPS : Number [salt okunur]
Kameranın saniye başına kare sayısı olarak veri yakalama hızı. | Camera | ||
fps : Number [salt okunur]
Kameranın saniye başına kare sayısı olarak veri yakalamasını istediğiniz maksimum hız. | Camera | ||
height : int [salt okunur]
Piksel olarak geçerli yakalama yüksekliği. | Camera | ||
index : int [salt okunur]
Tüm kullanılabilir kameraları listeleyen Camera.names dizisinde kameranın konumunu belirten, sıfır tabanlı bir dizin. | Camera | ||
isSupported : Boolean [statik] [salt okunur]
isSupported özelliği, Camera sınıfı geçerli platformda destekleniyorsa true olarak, aksi halde false olarak ayarlanır. | Camera | ||
keyFrameInterval : int [salt okunur]
Video sıkıştırma algoritması tarafından enterpolasyonlu yapılmak yerine tam (keyframes) olarak iletilen video kareleri sayısı. | Camera | ||
loopback : Boolean [salt okunur]
Kameranın yakaladıklarına ait yerel görünümün Flash Media Server kullanılarak canlı iletim yapıldığında olduğu gibi sıkıştırılıp sıkıştırmasının açıldığını mı (true) yoksa sıkıştırılmadığını mı (false) belirtir. | Camera | ||
motionLevel : int [salt okunur]
activity olayını çağırmak için gerekli hareket miktarı. | Camera | ||
motionTimeout : int [salt okunur]
Kameranın hareket algılamayı durdurmasıyla activity olayının çağrılması arasında geçen milisaniye sayısı. | Camera | ||
muted : Boolean [salt okunur]
Kullanıcının Flash Player Gizlilik iletişim kutusunda kameraya erişimi engelleyip (true) engellemediğini (false) gösteren bir Boolean değeri. | Camera | ||
name : String [salt okunur]
Kamera donanımının döndürdüğü haliyle geçerli kameranın adı. | Camera | ||
names : Array [statik] [salt okunur]
Tüm kullanılabilir kameraların adlarını içeren dizeler dizisi. | Camera | ||
permissionStatus : String [statik] [salt okunur]
Uygulamaya kamera kullanımı izninin verilip verilmediğini belirler. | Camera | ||
position : String [salt okunur]
Aygıtta kameranın yer aldığı tarafı belirtir. | Camera | ||
quality : int [salt okunur]
Her video karesine uygulanmakta olan sıkıştırma miktarının belirlediği gerekli resim kalitesi düzeyi. | Camera | ||
width : int [salt okunur]
Piksel olarak geçerli yakalama genişliği. | Camera |
Yöntem | Tanımlayan: | ||
---|---|---|---|
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
EventDispatcher nesnesi olan bir olay dinleyici nesnesini, dinleyicinin bir olayın bildirimini alması için kaydeder. | EventDispatcher | ||
Piksel verisinin dikdörtgen bölgesinden bir bayt dizisini doldurur. Bayt dizisine her piksel için işaretsiz bir tamsayı (32 bit çarpılmamış bir piksel değeri) yazar. | Camera | ||
Piksel verisinin dikdörtgen bölgesinden bir vektörü doldurur. | Camera | ||
Olay akışına bir olay gönderir. | EventDispatcher | ||
Son kareyi bir bitmap'e kopyalar. | Camera | ||
[statik]
Video çekmek için bir Camera nesnesine bir başvuru döndürür. | Camera | ||
EventDispatcher nesnesinin belirli bir olay türü için kayıtlı dinleyicisi olup olmadığını kontrol eder. | EventDispatcher | ||
Bir nesnenin belirli bir özelliğinin tanımlı olup olmadığını gösterir. | Object | ||
Object sınıfının bir örneğinin parametre olarak belirtilen nesnenin prototip zincirinde olup olmadığını gösterir. | Object | ||
Belirtilen özelliğin bulunup bulunmadığını ve numaralandırılabilir olup olmadığını gösterir. | Object | ||
EventDispatcher nesnesinden bir dinleyiciyi kaldırır. | EventDispatcher | ||
Uygulama için kamera izni ister. | Camera | ||
Hangi video karelerinin video sıkıştırma algoritması tarafından enterpolasyonlu yapılmak yerine tam (keyframes) olarak iletileceğini belirtir. | Camera | ||
Kameranın yerel bir görünümü için sıkıştırılmış bir video akışı kullanılıp kullanılmayacağını belirtir. | Camera | ||
Kamera yakalama modunu belirtilen gereksinimleri en iyi şekilde karşılayan yerli moda ayarlar. | Camera | ||
activity olayını göndermek için ne kadar hareketin gerekli olduğunu belirtir. | Camera | ||
Dinamik bir özelliğin döngü işlemlerinde kullanılabilirliğini ayarlar. | Object | ||
Saniyede maksimum bant genişliği miktarını veya giden video akışının gerekli resim kalitesini ayarlar. | Camera | ||
Bu nesnenin, yerel ayara özel kurallara göre biçimlendirilmiş dize temsilini döndürür. | Object | ||
Belirtilen nesnenin dize olarak temsil edilen halini döndürür. | Object | ||
Belirtilen nesnenin temel değerini döndürür. | Object | ||
Bir olay dinleyicisinin bu EventDispatcher nesnesiyle mi, yoksa onun belirtilen olay türüne yönelik üst öğelerinden biriyle mi kayıtlı olduğunu kontrol eder. | EventDispatcher |
Olay | Özet | Tanımlayan: | ||
---|---|---|---|---|
[broadcast olayı] Flash Player veya AIR uygulaması işletim sistemi odağına gelip etkin olduğunda gönderilir. | EventDispatcher | |||
Bir kamera oturum başlattığında veya sona erdirdiğinde gönderilir. | Camera | |||
[broadcast olayı] Çalışan Flash Player veya AIR uygulaması sistem odağını kaybettiğinde ve etkin olmayan duruma geldiğinde gönderilir. | EventDispatcher | |||
Uygulama, aygıt üzerindeki kamerayı kullanmak için izin istediğinde gönderilir. | Camera | |||
Bir kamera durumunu bildirdiğinde gönderilir. | Camera | |||
Çalışma zamanı tarafından yeni bir kamera karesinin işlenmesinin ardından gönderilir ve kopyalanabilir. | Camera |
activityLevel | özellik |
activityLevel:Number
[salt okunur] Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9 |
Kameranın algıladığı hareket miktarı. Değerler 0 (hareket algılanmaz) ile 100 (büyük miktarda hareket algılanır) arasıdır. Bu özelliğin değeri, setMotionLevel()
yöntemine bir ayar iletmeniz gerekip gerekmediğini belirlemenize yardımcı olabilir.
Kamera mevcutsa ancak Video.attachCamera()
yöntemi çağrılmadığından henüz kullanılmıyorsa, bu özellik -1 değerine ayarlanır.
Yalnızca sıkıştırılmamış yerel videoyu akışa alıyorsanız, ancak olay işleyicisine bir işlev atamış olmanız kaydıyla bu özellik ayarlanır. Yoksa, bu özellik tanımlanmaz.
Uygulama
public function get activityLevel():Number
Atar
PermissionError — Uygulama kamerayı kullanma iznine sahip değildir.
|
İlgili API Öğeleri
bandwidth | özellik |
bandwidth:int
[salt okunur] Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9 |
Gitmekte olan video akışının kullanabileceği bayt cinsinden maksimum bant genişliği miktarı. 0 değeri, akışın istenen kare kalitesini korumak için gerektiği kadar çok bant genişliği kullanabileceği anlamına gelir.
Bu özelliği ayarlamak için setQuality()
yöntemini kullanın.
Uygulama
public function get bandwidth():int
Atar
PermissionError — Uygulama kamerayı kullanma iznine sahip değildir.
|
İlgili API Öğeleri
currentFPS | özellik |
currentFPS:Number
[salt okunur] Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9 |
Kameranın saniyede kare sayısı olarak veri yakalama hızı. Bu özellik ayarlanamaz; ancak kameranın veri yakalamasını istediğiniz maksimum kare hızını belirten ilgili bir özelliği (fps
) ayarlamak için setMode()
yöntemini kullanabilirsiniz.
Uygulama
public function get currentFPS():Number
Atar
PermissionError — Uygulama kamerayı kullanma iznine sahip değildir.
|
İlgili API Öğeleri
fps | özellik |
fps:Number
[salt okunur] Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9 |
Kameranın saniye başına kare sayısı olarak veri yakalamasını istediğiniz maksimum hız. Olabilecek maksimum hız, kameranın yeteneklerine bağlıdır; bu kare hızı gerçekleştirilemez.
- Bu özellik için istediğiniz bir değeri ayarlamak üzere
setMode()
yöntemini kullanın. - Kameranın geçerli veri yakalama hızını belirlemek için
currentFPS
özelliğini kullanın.
Uygulama
public function get fps():Number
Atar
PermissionError — Uygulama kamerayı kullanma iznine sahip değildir.
|
İlgili API Öğeleri
height | özellik |
height:int
[salt okunur] Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9 |
Piksel olarak geçerli yakalama yüksekliği. Bu özellik için bir değeri ayarlamak üzere setMode()
yöntemini kullanın.
Uygulama
public function get height():int
Atar
PermissionError — Uygulama kamerayı kullanma iznine sahip değildir.
|
İlgili API Öğeleri
index | özellik |
index:int
[salt okunur] Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9 |
Tüm kullanılabilir kameraları listeleyen Camera.names
dizisinde kameranın konumunu belirten, sıfır tabanlı bir dizin.
Uygulama
public function get index():int
Atar
PermissionError — Uygulama kamerayı kullanma iznine sahip değildir.
|
İlgili API Öğeleri
isSupported | özellik |
keyFrameInterval | özellik |
keyFrameInterval:int
[salt okunur] Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9 |
Video sıkıştırma algoritması tarafından enterpolasyonlu yapılmak yerine tam (keyframes) olarak iletilen video kareleri sayısı. Varsayılan değer 15 olup bu, her 15. karenin bir anahtar kare olduğu anlamına gelir. 1 değeri, her karenin bir anahtar kare olduğu anlamına gelir. İzin verilen değerler 1 ile 300 arasıdır.
Uygulama
public function get keyFrameInterval():int
Atar
PermissionError — Uygulama kamerayı kullanma iznine sahip değildir.
|
İlgili API Öğeleri
loopback | özellik |
loopback:Boolean
[salt okunur] Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9 |
Kameranın yakaladıklarına ait yerel görünümün Flash Media Server kullanılarak canlı iletim yapıldığında olduğu gibi sıkıştırılıp sıkıştırmasının açıldığını mı (true
) yoksa sıkıştırılmadığını mı (false
) belirtir. Varsayılan değer false
şeklindedir.
Sıkıştırılmış bir akış, video kalitesi ayarlarını önizleme gibi test işlemleri için yararlı olsa da, önemli miktarda işleme maliyetine yol açar. Yerel görünüm sıkıştırılır, canlı bağlantıda olduğu gibi iletim için düzenlenir ve sonra yerel görüntüleme için sıkıştırılması açılır.
Bu değeri ayarlamak için Camera.setLoopback()
öğesini kullanın. Bu özellik true olduğunda kullanılan sıkıştırma miktarını ayarlamak için, Camera.setQuality()
öğesini kullanın.
Uygulama
public function get loopback():Boolean
Atar
PermissionError — Uygulama kamerayı kullanma iznine sahip değildir.
|
İlgili API Öğeleri
motionLevel | özellik |
motionLevel:int
[salt okunur] Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9 |
activity
olayını çağırmak için gerekli hareket miktarı. Kabul edilebilir değerler 0 - 100 aralığındadır. Varsayılan değer 50'dir.
motionLevel
özelliğinin değerine bakılmaksızın video görüntülenebilir. Daha fazla bilgi için bkz. setMotionLevel()
.
Uygulama
public function get motionLevel():int
Atar
PermissionError — Uygulama kamerayı kullanma iznine sahip değildir.
|
İlgili API Öğeleri
motionTimeout | özellik |
motionTimeout:int
[salt okunur] Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9 |
Kameranın hareket algılamayı durdurmasıyla activity
olayının çağrılması arasında geçen milisaniye sayısı. Varsayılan değer 2000'dir (2 saniye).
Bu değeri ayarlamak için, setMotionLevel()
öğesini kullanın.
Uygulama
public function get motionTimeout():int
Atar
PermissionError — Uygulama kamerayı kullanma iznine sahip değildir.
|
İlgili API Öğeleri
muted | özellik |
muted:Boolean
[salt okunur] Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9 |
Kullanıcının Flash Player Gizlilik iletişim kutusunda kameraya erişimi engelleyip (true
) engellemediğini (false
) gösteren bir Boolean değeri. Bu değer değiştiğinde, status
olayı gönderilir.
Uygulama
public function get muted():Boolean
Atar
PermissionError — Uygulama kamerayı kullanma iznine sahip değildir.
|
İlgili API Öğeleri
name | özellik |
name:String
[salt okunur] Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9 |
Kamera donanımının döndürdüğü haliyle geçerli kameranın adı.
Uygulama
public function get name():String
Atar
PermissionError — Uygulama kamerayı kullanma iznine sahip değildir.
|
İlgili API Öğeleri
names | özellik |
names:Array
[salt okunur] Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9 |
Tüm kullanılabilir kameraların adlarını içeren dizeler dizisi. Bu diziye erişmek, Flash Player Gizlilik iletişim kutusunu göstermez. Bu dizi, sistemdeki her kameranın ve kamera sayısının sıfır tabanlı bir dizinini sağlar(names.length
yoluyla).
names
özelliğinin çağrılması, donanımın yoğun şekilde incelenmesini gerektirir. Çoğu durumda yalnızca varsayılan kamerayı kullanabilirsiniz.
Uygulama
public static function get names():Array
Atar
PermissionError — Uygulama kamerayı kullanma iznine sahip değildir.
|
İlgili API Öğeleri
permissionStatus | özellik |
position | özellik |
position:String
[salt okunur] Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 3.0 |
Aygıtta kameranın yer aldığı tarafı belirtir.
Mobil bir aygıtta kameranın aygıtın ön yüzünde mi yoksa arka yüzünde mi olduğunu belirlemek için position
özelliğini kullanın. Aşağıdaki işlev, kullanılabilir her kamerayı istenen konuma sahip bir kamera buluncaya kadar kontrol eder. Hiçbir kamera istenen konumda değilse varsayılan kamera döndürülür.
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();
Mobil aygıtlarda kamera konumu normalde CameraPosition.FRONT
ya da CameraPosition.BACK
şeklindedir. Camera öğesinin konumu belirlenemiyorsa, konum CameraPosition.UNKNOWN
olarak bildirilir.Masaüstü platformlarda konum her zaman için CameraPosition.UNKNOWN
şeklindedir.
Bu özelliğin geçerli değerlerinin sabitleri CameraPosition sınıfında tanımlanır
Uygulama
public function get position():String
Atar
PermissionError — Uygulama kamerayı kullanma iznine sahip değildir.
|
İlgili API Öğeleri
quality | özellik |
quality:int
[salt okunur] Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9 |
Her video karesine uygulanmakta olan sıkıştırma miktarının belirlediği gerekli resim kalitesi düzeyi. Kabul edilebilir kalite değerleri 1 (en düşük kalite, maksimum sıkıştırma) ile 100 (en yüksek kalite, sıkıştırma yok) arasıdır. Varsayılan değer 0 olup bu, mevcut bant genişliğinin aşılmasını önlemek için gerektiğinde resim kalitesinin değişebileceği anlamına gelir.
Bu özelliği ayarlamak için setQuality()
yöntemini kullanın.
Uygulama
public function get quality():int
Atar
PermissionError — Uygulama kamerayı kullanma iznine sahip değildir.
|
İlgili API Öğeleri
width | özellik |
width:int
[salt okunur] Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9 |
Piksel olarak geçerli yakalama genişliği. Bu özellik için istediğiniz bir değeri ayarlamak üzere setMode()
yöntemini kullanın.
Uygulama
public function get width():int
Atar
PermissionError — Uygulama kamerayı kullanma iznine sahip değildir.
|
İlgili API Öğeleri
copyToByteArray | () | yöntem |
public function copyToByteArray(rect:Rectangle, destination:ByteArray):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 11.4, AIR 3.4 |
Piksel verisinin dikdörtgen bölgesinden bir bayt dizisini doldurur
Bayt dizisine her piksel için işaretsiz bir tam sayı (32 bit çarpılmamış bir piksel değeri) yazar. Dizi, tüm piksellerin tutulması için gerekli bayt sayısına yeniden boyutlandırılır.
Parametreler
rect:Rectangle — Geçerli BitmapData nesnesinde dikdörtgen bir alan.
| |
destination:ByteArray — Belirli dikdörtgen içindeki pikselleri temsil eden ByteArray.
|
Atar
PermissionError — Uygulama kamerayı kullanma iznine sahip değildir.
| |
TypeError — rect öğesi null değerindedir.
| |
TypeError — destination öğesi null değerindedir
|
İlgili API Öğeleri
copyToVector | () | yöntem |
public function copyToVector(rect:Rectangle, destination:Vector.<uint>):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 11.4, AIR 3.4 |
Piksel verisinin dikdörtgen bölgesinden bir vektörü doldurur.
Vektöre her piksel için işaretsiz bir tam sayı (32 bit çarpılmamış bir piksel değeri) yazar. Vektör, tüm piksellerin tutulması için gerekli giriş sayısına yeniden boyutlandırılır.
Parametreler
rect:Rectangle — Geçerli BitmapData nesnesinde dikdörtgen bir alan.
| |
destination:Vector.<uint> — Bir Vektör.<uint> belirli dikdörtgen içindeki pikselleri temsil eder.
|
Atar
PermissionError — Uygulama kamerayı kullanma iznine sahip değildir.
| |
TypeError — rect öğesi null değerindedir.
| |
TypeError — destination öğesi null değerindedir
|
İlgili API Öğeleri
drawToBitmapData | () | yöntem |
public function drawToBitmapData(destination:BitmapData):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 11.4, AIR 3.4 |
Son kareyi bir bitmap'e kopyalar.
Bu yöntem, son karenin içeriğini BitmapData örneğine kopyalar.
Parametreler
destination:BitmapData — Son kareyi içerecek bir BitmapData örneği nesnesi.
|
Atar
ArgumentError — destination çok küçük ise kInvalidBitmapDataError
|
İlgili API Öğeleri
getCamera | () | yöntem |
public static function getCamera(name:String = null):Camera
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9 |
Video yakalamak için bir Camera nesnesine başvuru döndürür. Video yakalamaya başlamak için, Camera nesnesini bir Video nesnesine eklemeniz gerekir (bkz. Video.attachCamera()
). Videoyu Flash Media Server'a iletmek için, NetStream.attachCamera()
öğesini çağırarak Camera nesnesini bir NetStream nesnesine ekleyin.
getCamera()
yöntemine yapılan birden çok çağrı, aynı kamera sürücüsüne başvurur. Böylece, kodunuz firstCam:Camera = getCamera()
ve secondCam:Camera = getCamera()
gibi kodlar içerirse, hem firstCam
hem de secondCam
, aynı kameraya başvurur, bu, kullanıcının varsayılan kamerasıdır.
Hem ön hem de arka kamerası olan mobil aygıtlarda aynı anda yalnızca bir kameradan video yakalayabilirsiniz.
Genelde, varsayılan kameraya bir başvuru döndürmek üzere name
parametresi için bir değer iletmemeniz yalnızca getCamera()
öğesini kullanmanız gerekir. Kamera ayarları panelinden (bu bölümün ilerleyen kısımlarında ele alınmıştır), kullanıcı, kullanılacak varsayılan kamerayı belirtebilir.
Kameraya erişilmesine yönelik bir kullanıcının Allow veya Deny izni ayarını belirlemek için ActionScript'i kullanamazsınız ancak kullanıcının kamera iznini ayarlayabildiği Adobe Flash Player Ayarları kamera ayarı iletişim kutusunu görüntüleyebilirsiniz. attachCamera()
yöntemini kullanan bir SWF dosyası, getCamera()
yönteminin döndürdüğü kamerayı bir Video veya NetStream nesnesine eklemeyi denediğinde, Flash Player, kullanıcının kameraya erişilmesine izin verip vermemeyi seçmesini sağlayan bir iletişim kutusunu görüntüler. (Uygulama pencerenizin boyutunun en az 215 x 138 piksel olduğundan emin olun; bu değer, Flash Player'ın iletişim kutusunu görüntülemek için gerektirdiği minimum boyuttur.) Kullanıcı, kamera ayarı iletişim kutusuna yanıt verdiğinde, Flash Player kullanıcının yanıtını gösteren status
olayında bir bilgi nesnesi döndürür: Camera.muted
, kullanıcının kameraya erişimi reddettiğini gösterir; Camera.Unmuted
ise kullanıcının kameraya erişilmesine izin verdiğini belirtir. status
olayını işlemeden kullanıcının bir kameraya erişilmesine izin verip vermediğini belirlemek için muted
özelliğini kullanın.
Flash Player'da kullanıcı, SWF dosyası oynatılırken sağ tıklatıp (Windows ve Linux) veya Control tuşuna basarak tıklatıp (Macintosh) Ayarlar'ı seçip daha sonra Gizlilik iletişim kutusunu açıp Hatırla seçeneğini belirleyerek kalıcı gizlilik ayarlarını belirtebilir. Kullanıcı, Hatırla seçeneğini belirlerse, Flash Player artık bu etki alanındaki SWF dosyalarının kameranıza erişmesine izin verip vermeyeceğini kullanıcıya sormaz.
Not: Kullanıcı, Flash Player Ayarları iletişim kutusunda Hatırla seçeneğini belirleyerek erişimi engellediyse, attachCamera()
yöntemi, kameraya erişime yönelik İzin Ver veya Engelle iletişim kutusunu çağırmaz. Bu durumda, Security.showSettings(SecurityPanel.PRIVACY)
kullanarak kullanıcı için Flash Player Gizlilik panelini görüntüleyip kullanıcıdan İzin Ver veya Engelle ayarını değiştirmesini isteyebilirsiniz.
getCamera()
öğesi null
değerini döndürürse, ya kamera başka bir uygulama tarafından kullanılıyordur ya da sistemde yüklü kamera yoktur. Herhangi bir kameranın yüklenip yüklenmediğini belirlemek için names.length
özelliğini kullanın. Kullanıcının getCamera()
tarafından başvurulacak kamerayı seçmesini sağlayan Flash Player Kamera Ayarları panelini görüntülemek için Security.showSettings(SecurityPanel.CAMERA)
öğesini kullanın.
Donanımda kamera taraması yapılması zaman alır. Çalışma zamanı en az bir kamera bulduğunda, donanımda player örneğinin ömrü için tekrar tarama yapılmaz. Ancak çalışma zamanı bir kamera bulmazsa, getCamera
her çağrıldığında tarama yapar. Kamera varsa ancak devre dışı bırakılmışsa bu yararlıdır; SWF dosyanız, getCamera
öğesini çağıran bir Tekrar Dene düğmesi sağlarsa, Flash Player, kullanıcının SWF dosyasını yeniden başlatması gerekmeden kamerayı bulabilir.
Parametreler
name:String (default = null ) — names özelliğinin döndürdüğü diziden belirlendiği gibi, hangi kameranın alınacağını belirtir. Çoğu uygulama için, bu parametreyi atlayarak varsayılan kamerayı alın. Bu parametre için bir değer belirlemek üzere, Camera.names dizisi içindeki sıfır temelli dizin konumunun dize temsilini kullanın. Örneğin, dizideki üçüncü kamerayı belirtmek için, Camera.getCamera("2") öğesini kullanın.
|
Camera — name parametresi belirtilmezse, bu yöntem varsayılan kameraya bir başvuru döndürür veya başka bir uygulama tarafından kullanılıyorsa kullanılabilir birinci kamerayı döndürür. (Birden çok kamera yüklenmişse, kullanıcı Flash Player Kamera Ayarları panelinde varsayılan kamerayı belirtebilir.) Herhangi bir kamera yoksa veya yüklenmemişse, yöntem null değerini döndürür.
|
Olaylar
status: — Bir kamera durumunu bildirdiğinde gönderilir. Bir kameraya erişilmeden önce, Flash Player, kullanıcılarına kameralarına erişime izin vermesi veya erişimi reddetmesini sağlamak için bir Gizlilik iletişim kutusunu görüntüler. code özelliğinin değeri "Camera.Muted" olursa, kullanıcı, SWF dosyasının kullanıcı kamerasına erişmesine izin vermeyi reddetmiştir. code özelliğinin değeri "Camera.Unmuted" olursa, kullanıcı, SWF dosyasının kullanıcı kamerasına erişmesine izin vermiştir.
|
İlgili API Öğeleri
Örnek ( Bu örnek nasıl kullanılır? )
Camera.getCamera()
yöntemi, bir kamera nesnesine başvuru döndürür veya bir kamera yoksa ya da yüklenmemişse null değerini döndürür. if ifadesi, kameranın bulunup bulunmadığını ve kullanıcının kameraya erişilmesine izin verip vermediğini kontrol eder. Kullanıcı erişimi engellediyse, muted
özelliği true
değerine ayarlanır.
Genellikle, attachCamera()
yöntemi çağrıldığında, bir iletişim kutusu görüntülenir ve kullanıcıya Flash Player'ın kameraya erişmesine izin verip vermeyeceğini sorar. Ancak kullanıcı erişimi engelleyip Remember
seçeneğini belirlediyse iletişim kutusu görüntülenmez ve herhangi bir şey görüntülenmez. Kullanıcının kameraya erişilmesine izin verme seçeneğine sahip olduğundan emin olmak için, myTextField
metin alanı, kullanıcıyı Flash Player Ayarları iletişim kutusunu çağırmak üzere metin alanını tıklatmaya yönlendirir.
clickHandler()
yöntemi, Ayarlar iletişim kutusunun PRIVACY
panelini görüntüleyen Security.showSettings()
yöntemini çağırır. Kullanıcı erişime izin verirse, StatusEvent.STATUS
olayı gönderilir ve olayın code
özelliğinin değeri Camera.Unmuted
olarak ayarlanır. (Kamera nesnesinin mute
özelliği de false
değerine ayarlanır.)
Kullanıcı erişime izin verirse, kullanıcının ayarındaki durum değişikliğini dinlemek için eklenen statusHandler()
yöntemi, connectCamera()
yöntemini çağırır. connectCamera()
yöntemi, yakalanan akışın genişlik ve yüksekliğine sahip bir video nesnesini başlatır. Kameranın yakalanmış videosunu görüntülemek için, video akışının başvurusu video nesnesine eklenir ve video nesnesi de görüntüleme nesnesine eklenir.
Bir Timer nesnesi de başlatılır. Her saniye bir Timer nesnesinin timer olayı gönderilir ve timerHandler()
yöntemi çağrılır. timerHandler()
yöntemi görüntülenir ve Camera nesnesinin birçok özelliğini günceller.
Not: Bu örnekte, değişen tek özellik currentFPS
özelliğidir.
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 | () | yöntem |
public function requestPermission():void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 24.0 |
Uygulama için kamera izni ister.
Olaylar
PermissionStatus: — İstenilen izin kullanıcı tarafından verildiğinde/reddedildiğinde gönderilir.
|
setKeyFrameInterval | () | yöntem |
public function setKeyFrameInterval(keyFrameInterval:int):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9 |
Hangi video karelerinin video sıkıştırma algoritması tarafından enterpolasyonlu yapılmak yerine tam (keyframes) olarak iletileceğini belirtir. Bu yöntem yalnızca Flash Media Server kullanarak video iletiyorsanız kullanılabilir.
Flash Video sıkıştırma algoritması, videonun son karesinden bu yana değişenleri ileterek videoyu sıkıştırır; bu bölümler enterpolasyonlu kareler olarak değerlendirilir. Bir videonun kareleri, önceki karenin içeriklerine göre enterpolasyonlu yapılabilir. Ancak bir anahtar kare, tam olan bir video karesidir; önceki karelerden enterpolasyonlu yapılmaz.
keyFrameInterval
parametresi için bir değerin nasıl ayarlanacağını belirlemek üzere hem bant genişliği kullanımını hem de video oynatma erişilebilirliğini göz önünde bulundurun. Örneğin, keyFrameInterval
için daha yüksek bir değerin belirtilmesi (anahtar kareleri daha az sıklıkla göndererek), bant genişliği kullanımını azaltır. Ancak bu, oynatma kafasını videoda belirli bir konuma yerleştirmek için gerekli süreyi artırabilir; videonun devam etmesi için daha önceki video karelerinin enterpolasyonlu yapılması gerekebilir.
Tam tersine, keyFrameInterval
için daha düşük bir değerin belirtilmesi (anahtar kareleri daha fazla sıklıkla göndererek), tüm video kareleri daha fazla sıklıkla iletildiği için bant genişliği kullanımını artırır ancak kayıtlı bir videodaki belirli bir video karesini bulmak için gerekli süreyi de azaltabilir.
Parametreler
keyFrameInterval:int — Hangi video karelerinin video sıkıştırma algoritması tarafından enterpolasyonlu yapılmak yerine tam (keyframes) olarak iletileceğini belirten bir değer. 1 değeri, her karenin bir anahtar kare olduğunu; 3 değeri, her üçüncü karenin bir anahtar kare olduğunu, vb. belirtir. Kabul edilebilir değerler 1 ile 48 arasıdır.
|
Atar
PermissionError — Uygulama kamerayı kullanma iznine sahip değildir.
|
İlgili API Öğeleri
setLoopback | () | yöntem |
public function setLoopback(compress:Boolean = false):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9 |
Kameranın yerel bir görünümü için sıkıştırılmış bir video akışı kullanılıp kullanılmayacağını belirtir. Bu yöntem yalnızca Flash Media Server kullanarak video iletiyorsanız kullanılabilir; compress
öğesinin true
değerine ayarlanması, kullanıcıların videoyu gerçek zamanlı görüntülerken videonun nasıl görüntülendiğini daha doğru şekilde görmenizi sağlar.
Sıkıştırılmış bir akış, video kalitesi ayarlarını önizleme gibi test amaçları için yararlı olsa da, büyük ölçüde işleme maliyetine yol açar; bunun nedeni, yerel görünümün yalnızca sıkıştırılmakla kalmayıp canlı bağlantıda olduğu gibi iletim için düzenlenmesi ve sonra yerel görüntüleme için sıkıştırılmasının açılmasıdır.
compress
öğesini true
değerine ayarladığınızda kullanılan sıkıştırma miktarını ayarlamak için Camera.setQuality()
öğesini kullanın.
Parametreler
compress:Boolean (default = false ) — Kameranın aldığı öğenin yerel bir görünümü için sıkıştırılmış bir video akışının mı (true ) yoksa sıkıştırılmamış bir akışın mı (false ) kullanılacağını belirtir.
|
Atar
PermissionError — Uygulama kamerayı kullanma iznine sahip değildir.
|
İlgili API Öğeleri
setMode | () | yöntem |
public function setMode(width:int, height:int, fps:Number, favorArea:Boolean = true):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9 |
Kamera yakalama modunu belirtilen gereksinimleri en iyi şekilde karşılayan yerli moda ayarlar. Kameranın ilettiğiniz tüm parametrelerle eşleşen yerel bir modu yoksa, çalışma zamanı, istenen modu en yakın şekilde sentezleyen bir yakalama modunu seçer. Bu işleme kapsamında görüntüyü kırpma ve kareleri bırakma yer alabilir.
Varsayılan olarak, çalışma zamanı, görüntü boyutunu korumak için gerektiğinde kareleri bırakır. Bu, görüntünün boyutunu azaltma anlamına gelse de, bırakılan karelerin sayısını en aza indirgemek üzere favorArea
parametresi için false
değerini iletin.
Bir yerel mod seçilirken, çalışma zamanı, istenen en boy oranını olabildiğince korumaya çalışır. Örneğin, myCam.setMode(400, 400, 30)
komutunu verirseniz ve kamerada kullanılabilir maksimum genişlik ve yükseklik değerleri 320 ve 288 ise, çalışma zamanı, genişliği ve yüksekliği 288'e ayarlar; bu özelliklerin aynı değere ayarlanmasıyla çalışma zamanı, istediğiniz 1:1 en boy oranını korur.
Çalışma zamanı istediğiniz değerlere en yakın eşleşen modu seçtikten sonra bu özelliklere atanan değerleri belirlemek için width
, height
ve fps
özelliklerini kullanın.
Flash Media Server kullanıyorsanız, tekli çerçeveler yakalayabilir veya zaman aşımı fotoğrafı (TLP) oluşturabilirsiniz. Daha fazla bilgi için bkz. NetStream.attachCamera()
.
Parametreler
width:int — Piksel olarak istenen yakalama genişliği. Varsayılan değer 160'tır.
| |
height:int — Piksel olarak istenen yakalama yüksekliği. Varsayılan değer 120'dir.
| |
fps:Number — Kameranın saniyede kare sayısı olarak veri yakalama hızı. Varsayılan değer 15'tir.
| |
favorArea:Boolean (default = true ) — Kameranın belirtilen gereksinimleri karşılayan bir yerel modu olmaması durumunda genişlik, yükseklik ve kare hızının işlenip işlenmeyeceğini belirtir. Varsayılan değer true olup bu, yakalama boyutunun korunmasının tercih edildiği anlamına gelir; bu parametrenin kullanılması sonucunda, kare hızı düşüp performans olumsuz yönde etkilenecek olsa da, width ve height değerlerine en yakın mod seçilir. Kamera yüksekliği ve genişliğinden ödün vererek kare hızını en üst düzeye çıkarmak üzere favorArea parametresi için false değerini iletin.
|
Atar
PermissionError — Uygulama kamerayı kullanma iznine sahip değildir.
|
İlgili API Öğeleri
Örnek ( Bu örnek nasıl kullanılır? )
Sahne Alanı, ölçeklenmeyecek şekilde ayarlanır. Camera.getCamera()
yöntemi, bir kamera nesnesine başvuru döndürür veya bir kamera yoksa ya da yüklenmemişse null değerini döndürür. Bir kamera varsa, connectCamera()
yöntemi çağrılır. connectCamera()
yöntemi bir video nesnesi başlatır. Kameranın yakalanmış videosunu görüntülemek için, video akışının başvurusu video nesnesine eklenir ve video nesnesi de görüntüleme nesnesine eklenir. MouseEvent.CLICK
olayı için de bir olay dinleyicisi ayarlanır. Kullanıcı Sahne Alanı'nı tıklattıktan sonra, clickHandler()
yöntemi çağrılır. Bu yöntem, yakalanan videonun genişliğini kontrol eder ve kamera yakalama modunun genişliğini, yüksekliğini ve saniye başına kare istek hızını ayarlar. Bu ayarların geçerli olması için, video nesnesinin kaldırılıp yeniden oluşturulması gerekir. Ayrıca videonun genişlik ve yüksekliğinin kameranın genişlik ve yüksekliğine ayarlanması gerekir.
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 | () | yöntem |
public function setMotionLevel(motionLevel:int, timeout:int = 2000):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9 |
activity
olayını göndermek için ne kadar hareketin gerekli olduğunu belirtir. İsteğe bağlı olarak, çalışma zamanının hareketi durmuş olarak değerlendirip olay göndermeden önce geçmesi gereken milisaniye cinsinden etkinsizlik süresini ayarlar.
Not: motionLevel
parametresinin değerine bakılmaksızın video görüntülenebilir. Bu parametre, videonun gerçekten yakalanıp yakalanmadığını veya görüntülenip görüntülenmediğini değil, yalnızca ne zaman ve hangi koşullarda olayın gönderileceğini belirler.
Kameranın hareketi algılamasını önlemek için, motionLevel
parametresi için 100 değerini iletin; böylece hiçbir zaman activity
olayı gönderilmez. (Büyük olasılıkla bu değeri, örneğin, olay gönderildiğinde normalde tetiklenecek olan işleyicileri geçici olarak devre dışı bırakmak gibi yalnızca test amaçlarıyla kullanırsınız.)
Kameranın geçerli olarak algıladığı hareket miktarını belirlemek için activityLevel
özelliğini kullanın. Hareket duyarlılığı değerleri, doğrudan etkinlik değerlerine karşılık gelir. Hiç hareket olmaması, 0 etkinlik değerine karşılık gelir. Sabit hareket, 100 etkinlik değerine karşılık gelir. Hareket etmediğinizde etkinlik değeriniz, hareket duyarlılığı değerinizden daha düşüktür; hareket ettiğinizde, etkinlik değerleri genellikle hareket duyarlılığı değerinizi aşar.
Bu yöntem, Microphone.setSilenceLevel()
yönteminin amacına benzer; her iki yöntem de activity
olayının ne zaman gönderilmesi gerektiğini belirtmek için kullanılır. Ancak bu yöntemlerin yayın akışları üzerinde çok farklı etkileri vardır:
Microphone.setSilenceLevel()
, bant genişliğini en iyileştirmek için tasarlanmıştır. Bir ses akışı sessiz olarak değerlendirildiğinde, herhangi bir ses verisi gönderilmez. Bunun yerine, sessizliğin başladığını belirten tek bir mesaj gönderilir.Camera.setMotionLevel()
, hareketi algılamak için tasarlanmış olup bant genişliği kullanımını etkilemez. Bir video akışı hareketi algılamasa da video yine de gönderilir.
Parametreler
motionLevel:int — activity olayını göndermek için ne kadar hareketin gerekli olduğunu belirtir. Kabul edilebilir değerler 0 - 100 aralığındadır. Varsayılan değer 50'dir.
| |
timeout:int (default = 2000 ) — Çalışma zamanının etkinliği durmuş olarak değerlendirip activity olayı göndermeden önce kaç milisaniye etkinsizlik süresi geçmesi gerektiğini belirtir. Varsayılan değer 2000 milisaniyedir (2 saniye).
|
Atar
PermissionError — Uygulama kamerayı kullanma iznine sahip değildir.
|
İlgili API Öğeleri
Örnek ( Bu örnek nasıl kullanılır? )
Camera.getCamera()
yöntemi, bir kamera nesnesine başvuru döndürür veya bir kamera yoksa ya da yüklenmemişse null değerini döndürür. if ifadesi, kameranın kullanılabilir olup olmadığını kontrol eder ve kamera kullanılabilir durumdaysa connectCamera()
yöntemini çağırır. connectCamera()
yöntemi, yakalanan akışın genişlik ve yüksekliğine sahip bir video nesnesini başlatır. Kameranın yakalanmış videosunu görüntülemek için, video akışının başvurusu video nesnesine eklenir ve video nesnesi de görüntüleme nesnesine eklenir. (Genellikle, attachCamera()
yöntemi çağrıldığında, bir iletişim kutusu görüntülenir ve kullanıcıya Flash Player'ın kameraya erişmesine izin verip vermeyeceğini sorar. Ancak kullanıcı erişimi engelleyip Remember
seçeneğini belirlediyse iletişim kutusu görüntülenmez ve herhangi bir şey görüntülenmez. Kullanıcının kameraya erişilmesine izin verme seçeneğine sahip olduğundan emin olmak için, system.Security.showSettings()
yöntemini kullanarak Flash Player Ayarları iletişim kutusunu çağırın.)
setMotionLevel()
yöntemi, en az hareket için, activity olayı çağrılmadan önce etkinlik düzeyini (hareket miktarı) beş değerine ayarlar. Kameranın hareket algılamasının durduğu ve activity olayının çağrıldığı zaman arasında geçen süre 1 saniyeye (1000 milisaniye) ayarlanır. Etkinlik olmadan 1 saniye geçtikten veya etkinlik düzeyi beş değerine ulaştıktan sonra, ActivityEvent.ACTIVITY
olayı gönderilir ve activityHandler()
yöntemi çağrılır. Etkinlik düzeyi tarafından olay tetiklenmişse, activating
özelliği true
değerine ayarlanır ve bir Timer nesnesi başlatılır. Her saniye bir Timer nesnesinin zamanlayıcı olayı gönderilir ve geçerli etkinlik düzeyini görüntüleyen timerHandler()
yöntemi çağrılır. (Beş veya daha yüksek bir düzey, zamanlayıcıyı tetiklese de, görüntülenen geçerli etkinlik süresi daha küçük bir sayı olabilir.)
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 | () | yöntem |
public function setQuality(bandwidth:int, quality:int):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9 |
Saniyede maksimum bant genişliği miktarını veya giden video akışının gerekli resim kalitesini ayarlar. Genellikle bu yöntem yalnızca Flash Media Server kullanarak video iletiyorsanız kullanılabilir.
Gitmekte olan video akışının hangi öğesinin (bant genişliği kullanımı veya resim kalitesi) uygulamanız için daha önemli olduğunu belirtmek üzere bu yöntemi kullanın.
- Bant genişliği kullanımının öncelikli olduğunu belirtmek üzere
bandwidth
için bir değer iletin vequality
için 0 değerini iletin. Çalışma zamanı, belirtilen bant genişliği içinde olabilecek en yüksek kalitede video iletir. Gerekirse, çalışma zamanı, belirtilen bant genişliğinin aşılmasını önlemek için resim kalitesini düşürür. Genellikle, hareket arttıkça kalite düşer. - Kalitenin öncelikli olduğunu belirtmek üzere
bandwidth
için 0 değerini iletin vequality
için sayısal bir değer iletin. Çalışma zamanı, belirtilen kaliteyi korumak için gerektiği kadar çok bant genişliği kullanır. Gerekirse, çalışma zamanı, resim kalitesini korumak için kare hızını düşürür. Genellikle hareket arttıkça bant genişliği kullanımı da artar. - Bant genişliği ve kalitenin eşit düzeyde önemli olduğunu belirtmek üzere her iki parametre için de sayısal değerler iletin. Çalışma zamanı, belirtilen kaliteye sahip olan ve belirtilen bant genişliğini aşmayan videoları iletir. Gerekirse, çalışma zamanı, belirtilen bant genişliğini aşmadan resim kalitesini korumak için kare hızını düşürür.
Parametreler
bandwidth:int — Gitmekte olan video akışının kullanabileceği maksimum bant genişliği miktarını, saniye başına bayt cinsinden belirtir. Videonun, quality değerini korumak için gerektiği kadar çok bant genişliği kullanabildiğini belirtmek üzere bandwidth için 0 değerini iletin. Varsayılan değer 16384'tür.
| |
quality:int — Her video karesine uygulanmakta olan sıkıştırma miktarının belirlediği gerekli resim kalitesi düzeyini belirten bir tam sayı. Kabul edilebilir değerler 1 (en düşük kalite, maksimum sıkıştırma) ile 100 (en yüksek kalite, sıkıştırma yok) arasıdır. Bant genişliğinin aşılmasını önlemek için gerektiğinde resim kalitesinin değişebileceğini belirtmek üzere quality için 0 değerini iletin.
|
Atar
PermissionError — Uygulama kamerayı kullanma iznine sahip değildir.
|
İlgili API Öğeleri
activity | Olay |
flash.events.ActivityEvent
özellik ActivityEvent.type =
flash.events.ActivityEvent.ACTIVITY
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9 |
Bir kamera oturum başlattığında veya sona erdirdiğinde gönderilir. activating
değeri true
olan bir activity
olayını tetiklemek için gerekli hareket miktarını veya activating
değeri false
olan bir activity
olayını tetiklemeden önce geçmesi gereken etkinsizlik süresini belirtmek için Camera.setMotionLevel()
öğesini çağırın.
ActivityEvent.ACTIVITY
sabiti, activity
olay nesnesinin type
özelliği değerini tanımlar.
Bu olay şu özelliklere sahiptir:
Özellik | Değer |
---|---|
activating | Cihaz etkinleştiriliyorsa true , devre dışı bırakılıyorsa false . |
bubbles | false |
cancelable | false ; iptal edilecek varsayılan davranış yoktur. |
currentTarget | Bu Event nesnesini olay dinleyicisiyle etkin olarak işleyen nesne. |
target | Camera veya Microphone gibi bir oturumu başlatan ya da bitiren nesne. |
permissionStatus | Olay |
flash.events.PermissionEvent
özellik PermissionEvent.type =
flash.events.PermissionEvent.PERMISSION_STATUS
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 24.0 |
Uygulama, aygıt üzerindeki kamerayı kullanmak için izin istediğinde gönderilir. İznin verildiğini veya reddedildiğini belirlemek için status
özelliğinin değerini kontrol edin
İlgili API Öğeleri
status | Olay |
flash.events.StatusEvent
özellik StatusEvent.type =
flash.events.StatusEvent.STATUS
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR (unsupported) |
Bir kamera durumunu bildirdiğinde gönderilir. Bir kameraya erişilmeden önce, çalışma zamanı, kullanıcılarına kameralarına erişime izin vermesi veya erişimi reddetmesini sağlamak için bir Gizlilik iletişim kutusunu görüntüler. code
özelliğinin değeri "Camera.Muted"
olursa, kullanıcı, SWF dosyasının kullanıcı kamerasına erişmesine izin vermeyi reddetmiştir. code
özelliğinin değeri "Camera.Unmuted"
olursa, kullanıcı, SWF dosyasının kullanıcı kamerasına erişmesine izin vermiştir.
Not: Bu olay AIR platformunda gönderilmez. Yalnızca Flash Player üzerinde kullanılır.
status
olay nesnesinin type
özelliği değerini tanımlar.
Bu olay şu özelliklere sahiptir:
Özellik | Değer |
---|---|
bubbles | false |
cancelable | false ; iptal edilecek varsayılan davranış yoktur. |
code | Nesne durumunun bir açıklaması. |
currentTarget | Bu Event nesnesini olay dinleyicisiyle etkin olarak işleyen nesne. |
düzey | Mesajın kategorisi; örneğin, "status" , "warning" veya "error" . |
target | Durumunu bildiren nesne. |
İlgili API Öğeleri
videoFrame | Olay |
flash.events.Event
özellik Event.type =
flash.events.Event.VIDEO_FRAME
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 11.4, AIR 3.4 |
Çalışma zamanı tarafından yeni bir kamera karesinin işlenmesinin ardından gönderilir ve kopyalanabilir.
Event.VIDEO_FRAME
sabiti, videoFrame
olay nesnesinin type
özelliği değerini tanımlar.
Bu olay şu özelliklere sahiptir:
Özellik | Değer |
---|---|
bubbles | false |
cancelable | false ; iptal edilecek varsayılan davranış yoktur. |
target | Bu olayı gönderen Camera nesnesi. |
İlgili API Öğeleri
activity
olayı, oturumun (varsa) başında ve sonunda gönderilir ve olay hakkında bilgi yazdıran activityHandler()
yöntemi tarafından yakalanır.
Not: Bu örneğin doğru şekilde çalışması için bir kameranın bilgisayarınıza takılı olması gerekir.
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, 01:09 PM Z