パッケージflash.media
public final class Camera
継承Camera Inheritance EventDispatcher Inheritance Object

Camera クラスは主に Flash Media Server で使われますが、サーバーなしでも限定的な方法で使用できます。

Camera クラスを使うと、Adobe Flash Player を実行するコンピュータに接続されたビデオカメラからのビデオをキャプチャすることができます。たとえば、ローカルシステムに接続した Web カメラから送られてくるビデオを監視することができます。Flash にはこれと似たオーディオ機能も用意されています。詳細については、Microphone クラスを参照してください。

警告 : SWF ファイルで、getCamera() メソッドから返されたカメラにアクセスしようとすると、そのカメラへのアクセスを許可または禁止することができるダイアログボックスが表示されます。Camera クラスの例として使用するアプリケーションウィンドウのサイズは 215 × 138 ピクセル以上にしてください。これは、ダイアログボックスを表示するために必要な Flash の最小サイズです。エンドユーザーおよび管理ユーザーがカメラへのアクセスをサイト単位で、またはグローバルに無効にすることもできます。

Camera オブジェクトを作成または参照するには、getCamera() メソッドを使います。

関連項目

flash.media.Microphone


パブリックプロパティ
 プロパティ定義
  activityLevel : Number
[read-only] カメラが検知しているモーション量を示す数値です。
Camera
  bandwidth : int
[read-only] 現在の送信ビデオフィードで使用できる最大帯域幅 (バイト単位) を指定する整数です。
Camera
 Inheritedconstructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
  currentFPS : Number
[read-only] 現在のデータキャプチャレート (1 秒あたりのフレーム数) です。
Camera
  fps : Number
[read-only] 希望する最大データキャプチャレート (1 秒あたりのフレーム数) です。
Camera
  height : int
[read-only] 現在のキャプチャの高さ (ピクセル単位) です。
Camera
  index : int
[read-only] カメラのインデックスを指定するゼロから始まる整数です。これは、names プロパティから返される配列のインデックスと同じです。
Camera
  keyFrameInterval : int
[read-only] ビデオ圧縮アルゴリズムによって補間されるのではなく、(キーフレームと呼ばれる) 完全送信されるビデオフレームを指定します。
Camera
  loopback : Boolean
[read-only] カメラが取得するローカルビューを、Flash Media Server を使用したライブ送信で使用されるように圧縮および解凍するか (true)、または圧縮されていない状態にするか (false) を指定します。
Camera
  motionLevel : int
[read-only] activity イベントを呼び出すのに必要なモーション量を指定する数値です。
Camera
  motionTimeout : int
[read-only] カメラがモーション検知を停止してから、activity イベントが呼び出されるまでの時間 (ミリ秒単位) です。
Camera
  muted : Boolean
[read-only] ユーザーが [Macromedia Flash Player 設定] パネルの [プライバシー] でカメラへのアクセスを禁止したか (true)、または許可したか (false) を示すブール値です。
Camera
  name : String
[read-only] 現在のカメラの名前を示すストリングです。カメラのハードウェアから返されるものです。
Camera
  names : Array
[static][read-only] [Macromedia Flash Player 設定] パネルの [プライバシー] を表示せずに、使用できるすべてのカメラの名前が含まれるストリング配列を取得します。
Camera
 Inheritedprototype : Object
[static] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
  quality : int
[read-only] 必要な画質レベルを指定する整数です。各ビデオフレームに適用される圧縮率によって決まります。
Camera
  width : int
[read-only] 現在のキャプチャの幅 (ピクセル単位) です。
Camera
パブリック Methods
 メソッド定義
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
リスナーがイベントの通知を受け取るように、イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録します。
EventDispatcher
 Inherited
イベントをイベントフローに送出します。
EventDispatcher
  
getCamera(name:String = null):Camera
[static] ビデオをキャプチャする Camera オブジェクトへの参照を返します。
Camera
 Inherited
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。
EventDispatcher
 Inherited
指定されたプロパティがオブジェクトに定義されているかどうかを示します。
Object
 Inherited
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
 Inherited
指定されたプロパティが存在し、列挙できるかどうかを示します。
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
EventDispatcher オブジェクトからリスナーを削除します。
EventDispatcher
  
setKeyFrameInterval(keyFrameInterval:int):void
ビデオ圧縮アルゴリズムによって補間されるのではなく、(キーフレームと呼ばれる) 完全送信されるビデオフレームを指定します。
Camera
  
setLoopback(compress:Boolean = false):void
カメラのローカルビューに対して圧縮したビデオストリームを使用するかどうかを指定します。
Camera
  
setMode(width:int, height:int, fps:Number, favorArea:Boolean = true):void
カメラのキャプチャモードを指定の要件に最も近いネイティブモードに設定します。
Camera
  
setMotionLevel(motionLevel:int, timeout:int = 2000):void
activity イベントを送出するために必要なモーションの量を指定します。
Camera
 Inherited
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
  
setQuality(bandwidth:int, quality:int):void
現在の送信ビデオフィードの 1 秒あたりの最大帯域幅、または必要な画質を設定します。
Camera
 Inherited
指定されたオブジェクトのストリング表現を返します。
Object
 Inherited
指定されたオブジェクトのプリミティブな値を返します。
Object
 Inherited
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。
EventDispatcher
イベント
 イベント一覧定義
 Inherited Flash Player がオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。EventDispatcher
   カメラがセッションを開始または終了したときに送出されます。Camera
 Inherited Flash Player がオペレーティングシステムのフォーカスを失って、非アクティブになったときに送出されます。EventDispatcher
   カメラがそのステータスをレポートしたときに送出されます。Camera
プロパティの詳細
activityLevelプロパティ
activityLevel:Number  [read-only]

カメラが検知しているモーション量を示す数値です。0 (モーションは検知されていない) から 100 (大量のモーションが検知されている) までの値が設定されます。このプロパティの値は、setMotionLevel() メソッドに設定を渡す必要があるかどうかを判断するのに役立ちます。

Video.attachCamera() メソッドが呼び出されていないため、使用可能なカメラがまだ使用されていない場合は、このプロパティが -1 に設定されます。

圧縮されていないローカルビデオだけをストリーミングする場合、このプロパティは イベントハンドラに関数を割り当て済みであるときに限り設定されます。それ以外の場合は undefined になります。

実装
    public function get activityLevel():Number

関連項目

bandwidthプロパティ 
bandwidth:int  [read-only]

現在の送信ビデオフィードで使用できる最大帯域幅 (バイト単位) を指定する整数です。0 は、ビデオのフレーム品質を維持するために必要な帯域幅を使用できることを示します。

このプロパティの値を設定するには、setQuality() メソッドを使用します。

実装
    public function get bandwidth():int

関連項目

currentFPSプロパティ 
currentFPS:Number  [read-only]

現在のデータキャプチャレート (1 秒あたりのフレーム数) です。このプロパティを設定することはできません。ただし、setMode() メソッドを使うと、これに関係する fps プロパティを設定することができます。このプロパティは、データをキャプチャする際の希望最大フレームレートを指定します。

実装
    public function get currentFPS():Number

関連項目

fpsプロパティ 
fps:Number  [read-only]

希望する最大データキャプチャレート (1 秒あたりのフレーム数) です。使用できる最大レートは、カメラの性能によって異なります。このプロパティに設定した値をカメラがサポートしていない場合は、このフレームレートは達成されません。

実装
    public function get fps():Number

関連項目

heightプロパティ 
height:int  [read-only]

現在のキャプチャの高さ (ピクセル単位) です。このプロパティに値を設定するには、setMode() メソッドを使用します。

実装
    public function get height():int

関連項目

indexプロパティ 
index:int  [read-only]

カメラのインデックスを指定するゼロから始まる整数です。これは、names プロパティから返される配列のインデックスと同じです。

実装
    public function get index():int

関連項目

keyFrameIntervalプロパティ 
keyFrameInterval:int  [read-only]

ビデオ圧縮アルゴリズムによって補間されるのではなく、(キーフレームと呼ばれる) 完全送信されるビデオフレームを指定します。デフォルト値は 15 で、15 のフレームごとにフレームがキーフレームになります。

実装
    public function get keyFrameInterval():int
loopbackプロパティ 
loopback:Boolean  [read-only]

カメラが取得するローカルビューを、Flash Media Server を使用したライブ送信で使用されるように圧縮および解凍するか (true)、または圧縮されていない状態にするか (false) を指定します。デフォルト値は false です。

この値を設定するには、Camera.setLoopback() を使用します。このプロパティが true である場合に使用する圧縮率を設定するには、Camera.setQuality() を使用します。

実装
    public function get loopback():Boolean

関連項目

motionLevelプロパティ 
motionLevel:int  [read-only]

activity イベントを呼び出すのに必要なモーション量を指定する数値です。指定できる値は 0 ~ 100 です。デフォルト値は 50 です。

ビデオは motionLevel プロパティの値に関係なく表示できます。詳細については、 setMotionLevel() を参照してください。

実装
    public function get motionLevel():int

関連項目

motionTimeoutプロパティ 
motionTimeout:int  [read-only]

カメラがモーション検知を停止してから、activity イベントが呼び出されるまでの時間 (ミリ秒単位) です。デフォルト値は 2000 (2 秒) です。

この値を設定するには、setMotionLevel() を使用します。

実装
    public function get motionTimeout():int

関連項目

mutedプロパティ 
muted:Boolean  [read-only]

ユーザーが [Macromedia Flash Player 設定] パネルの [プライバシー] でカメラへのアクセスを禁止したか (true)、または許可したか (false) を示すブール値です。この値が変わると、status イベントが送出されます。

実装
    public function get muted():Boolean

関連項目

nameプロパティ 
name:String  [read-only]

現在のカメラの名前を示すストリングです。カメラのハードウェアから返されるものです。

実装
    public function get name():String

関連項目

namesプロパティ 
names:Array  [read-only]

[Macromedia Flash Player 設定] パネルの [プライバシー] を表示せずに、使用できるすべてのカメラの名前が含まれるストリング配列を取得します。この配列は ActionScript の他の配列と同じように動作します。この配列を使用して、それぞれのカメラのゼロから始まるインデックスと、システム上のカメラの数 (names.length) を調べることができます。詳細については、Array クラスの names を参照してください。

names プロパティが呼び出されると、ハードウェアを広範囲にわたって調べる必要があります。このため、配列を作成するまでに数秒間かかることがあります。ほとんどの場合は、デフォルトのカメラを使用できます。

実装
    public static function get names():Array

関連項目

qualityプロパティ 
quality:int  [read-only]

必要な画質レベルを指定する整数です。各ビデオフレームに適用される圧縮率によって決まります。指定できる品質値は 1 (最低品質、最大圧縮率) から 100 (最高品質、圧縮なし) までです。デフォルト値は 0 です。これは、使用できる帯域幅を超えることがないように、画質が必要に応じて変更されることを示します。

このプロパティの値を設定するには、setQuality() メソッドを使用します。

実装
    public function get quality():int

関連項目

widthプロパティ 
width:int  [read-only]

現在のキャプチャの幅 (ピクセル単位) です。このプロパティに必要な値を設定するには、setMode() メソッドを使用します。

実装
    public function get width():int

関連項目

メソッドの詳細
getCamera()メソッド
public static function getCamera(name:String = null):Camera

ビデオをキャプチャする Camera オブジェクトへの参照を返します。ビデオのキャプチャを実際に開始するには、Camera オブジェクトを Video オブジェクトに関連付ける必要があります。詳細については、Video.attachVideo() を参照してください。

getCamera() メソッドを複数回呼び出した場合は、同じカメラへの参照が返されます。したがって、firstCam:Camera = getCamera()secondCam:Camera = getCamera() のようなコードが含まれている場合、firstCamsecondCam はどちらも同じユーザーのデフォルトのカメラを参照します。

一般には、name パラメータの値は指定せず、単に getCamera() を使用してデフォルトのカメラへの参照を取得します。ユーザーは、このセクションで後述する [カメラ] ボックスで、Flash で使用するデフォルトのカメラを指定できます。

SWF ファイルで getCamera() から返されたカメラにアクセスしようとすると、そのカメラへのアクセスを許可するかどうかをユーザーが選択するためのダイアログボックスが表示されます。アプリケーションウィンドウのサイズは必ず 215×138 ピクセル以上に設定してください。これは、ダイアログボックスを表示するために必要な Flash の最小サイズです。ユーザーがこのダイアログボックスに応答すると、Flash Player はユーザーの応答を示す status イベントで情報オブジェクトを返します。<code>Camera.muted</code> はユーザーがカメラへのアクセスを禁止したことを示し、<code>Camera.unmuted</code> はそれを許可したことを示します。status イベントを使用せずにユーザーがカメラへのアクセスを許可したかどうかを判断するには、muted プロパティを使用します。

ユーザーは、再生中の SWF ファイルを右クリック (Windows) または Control キーを押しながらクリック (Macintosh) し、[設定] を選択して [プライバシー] パネルを開き、[後で確認] を選択すると、特定のドメインに対する永続的なプライバシー設定を指定できます。

ActionScript からユーザーに対して許可または拒否を設定することはできません。ただし、Security.showSettings(SecurityPanel.PRIVACY) を呼び出すことで、ユーザーの [プライバシー] パネルを表示できます。ユーザーが [後で確認] を選択していた場合、SWF ファイルがこのドメインからカメラにアクセスすることを許可するか禁止するかを確認するメッセージは表示されません。

getCamera()null を返した場合、カメラは他のアプリケーションによって使用されているか、そのシステムにはカメラがインストールされていません。カメラがインストールされているかどうかを調べるには、names.length プロパティを使用します。getCamera() が参照するカメラをユーザーが選択するための [カメラ] ボックスを表示するには、System.showSettings(SecurityPanel.CAMERA) を使用します。

カメラのハードウェアスキャンには時間がかかります。カメラが 1 つでも見つかると、その Flash Player インスタンスの存続中は、ハードウェアが再びスキャンされることはありません。しかし、カメラが見つからなかった場合は、getCamera が呼び出されるたびにハードウェアがスキャンされます。この動作は、ユーザーがカメラを接続するのを忘れた場合に便利です。getCamera を呼び出すための [再試行] ボタンを SWF ファイルに用意すれば、ユーザーが SWF ファイルを再起動しなくてもカメラを見つけることができます。

パラメータ
name:String (default = null) — 取得するカメラを names プロパティで返される配列から決定します。多くのアプリケーションでは、パラメータを省略してデフォルトのカメラを取得します。

戻り値
Cameraname パラメータを指定しない場合は、デフォルトのカメラへの参照を返します。デフォルトのカメラが他のアプリケーションで使用されている場合は、使用できる最初のカメラへの参照を返します。複数のカメラがインストールされている場合、ユーザーは [Macromedia Flash Player 設定] パネルの [カメラ] でデフォルトのカメラを指定できます。利用できるカメラがない場合、またはカメラがインストールされていない場合は、null を返します。

イベント
status:StatusEvent — カメラがそのステータスをレポートしたときに送出されます。code プロパティの値が "Camera.muted" である場合、SWF ファイルのカメラへのアクセス許可を拒否したことになります。code プロパティの値が "Camera.unmuted" である場合、SWF ファイルのカメラへのアクセスを許可することになります。

関連項目

setKeyFrameInterval()メソッド 
public function setKeyFrameInterval(keyFrameInterval:int):void

ビデオ圧縮アルゴリズムによって補間されるのではなく、(キーフレームと呼ばれる) 完全送信されるビデオフレームを指定します。一般に、このメソッドは、Flash Media Server を使ってビデオを送信している場合にだけ使用します。

Flash Video 圧縮アルゴリズムでは、ビデオの最後のフレームからの変更のみを送信して、ビデオを圧縮します。これらの変更部分が補間フレームと見なされます。ビデオのフレームは、前のフレームの内容に応じて補間されます。ただし、キーフレームは完全なビデオフレームであるため、前のフレームから補間されることはありません。

keyFrameInterval パラメータの値を設定する方法を判別するには、帯域幅の使用量とビデオ再生アクセシビリティの両方を検討します。たとえば、keyFrameInterval に対して大きい値を指定すると (キーフレームの送信が少なくなる)、帯域幅の使用量が減少します。ただし、これはビデオの特定のポイントで再生ヘッドの位置を指定する際に要する時間を増やすことになります。ビデオを再開するには、前のビデオフレームをより多く補間する必要があります。

逆に、keyFrameInterval に対して小さい値を指定すると (キーフレームの送信が多くなる)、ビデオフレーム全体の送信が多くなるため、帯域幅の使用量が増加しますが、録画済みのビデオ内で特定のビデオフレームをシークする際に要する時間は減ります。

パラメータ
keyFrameInterval:int — ビデオ圧縮アルゴリズムによって補間されるのではなく、(キーフレームとして) 完全送信されるビデオフレームを指定する値です。1 を指定すると、すべてのフレームがキーフレームになり、3 を指定すると、3 つのフレームごとにフレームがキーフレームになります (以下同様)。有効な値は、1 ~ 48 です。

関連項目

setLoopback()メソッド 
public function setLoopback(compress:Boolean = false):void

カメラのローカルビューに対して圧縮したビデオストリームを使用するかどうかを指定します。一般に、このメソッドは、Flash Media Server を使ってビデオを送信している場合にのみ使用します。compresstrue に設定すると、リアルタイムで表示した場合に、ビデオがどのようにユーザーで表示されるかを正確に確認できます。

圧縮したストリームは、ビデオの品質設定のプレビューなど、テスト目的で使用する場合には役立ちますが、ローカルビューは単純に圧縮されないため、非常に処理コストがかかります。ローカルビューは圧縮されたら、送信するためにライブ接続で使用される形式に編集され、ローカルで表示するために解凍されます。

compresstrue に設定した場合に使用する圧縮率を設定するには、Camera.setQuality() を使用します。

パラメータ
compress:Boolean (default = false) — カメラが受け取るローカルビューに対して、圧縮したビデオストリーム (true) を使用するか、または圧縮されていないストリーム (false) を使用するかを指定します。

関連項目

setMode()メソッド 
public function setMode(width:int, height:int, fps:Number, favorArea:Boolean = true):void

カメラのキャプチャモードを指定の要件に最も近いネイティブモードに設定します。指定したすべてのパラメータに一致するネイティブモードがカメラにない場合は、要求したモードに最も近いキャプチャモードが選択されます。これにより、画像の一部が切り取られたり、フレームが削除される可能性があります。

デフォルトでは、画像のサイズを維持するために、必要に応じてフレームが削除されます。削除されるフレームの数を最小限に抑えるには、favorAreafalse を指定します。ただし、これによって画像のサイズは小さくなります。

ネイティブモードを選択した場合は、指定した縦横比ができる限り維持されます。たとえば、myCam.setMode(400, 400, 30) コマンドを実行し、そのカメラで利用できる最大の幅と高さが 320 および 288 である場合は、幅と高さがともに 288 に設定されます。幅と高さを同じ値に設定することで、要求された 1:1 の縦横比が維持されます。

要求した値に最も近いモードが選択された後に、割り当てられた幅、高さ、ビデオキャプチャレートを調べるには、widthheight、および fps プロパティを使用します。

パラメータ
width:int — 要求されたキャプチャの幅 (ピクセル単位) です。デフォルト値は 160 です。
 
height:int — 要求されたキャプチャの高さ (ピクセル単位) です。デフォルト値は 120 です。
 
fps:Number — 要求されたデータキャプチャレート (1 秒あたりのフレーム数) です。デフォルト値は 15 です。
 
favorArea:Boolean (default = true) — 指定要件に合うネイティブモードがカメラにない場合に、幅、高さ、フレームレートをどのように操作するかを指定します。デフォルト値は true で、キャプチャサイズを維持することを示します。このパラメータを使用すると、width 値と height 値に最も近いモードが選択されます。ただし、これによりフレームレートが低下し、パフォーマンスに悪影響を及ぼすことがあります。カメラの高さと幅よりも最大フレームレートを優先するには、favorArea パラメータに false を指定します。

関連項目

setMotionLevel()メソッド 
public function setMotionLevel(motionLevel:int, timeout:int = 2000):void

activity イベントを送出するために必要なモーションの量を指定します。アクティビティがない場合に、モーションが停止したと判定してイベントを送出するまでの時間をミリ秒単位で設定することもできます。

メモ : ビデオは motionLevel パラメータの値に関係なく表示できます。このパラメータは、ビデオを実際にキャプチャまたは表示するかどうかではなく、イベントを送出するタイミングと状況のみを決定します。

このメソッドの目的は Microphone.setSilenceLevel() メソッドに似ています。どちらのメソッドも、activity イベントの送出方法を指定するために使用します。ただし、パブリッシュするストリームに対する影響という点では、この 2 つのメソッドは大きく異なります。

パラメータ
motionLevel:intactivity イベントを送出するために必要なモーションの量を指定します。指定できる値は 0 ~ 100 です。デフォルト値は 50 です。
 
timeout:int (default = 2000) — アクティビティがない場合に、アクティビティが停止したと判定して activity イベントを送出するまでの経過時間をミリ秒単位で指定します。デフォルト値は 2000 (2 秒) です。

関連項目

setQuality()メソッド 
public function setQuality(bandwidth:int, quality:int):void

現在の送信ビデオフィードの 1 秒あたりの最大帯域幅、または必要な画質を設定します。一般に、このメソッドは、Flash Media Server を使ってビデオを送信している場合にだけ使用します。

このメソッドを使用して、送信ビデオフィードの要素として帯域幅と画質のどちらがそのアプリケーションにとって重要かを指定します。

パラメータ
bandwidth:int — 現在の送信ビデオフィードで使用できる最大帯域幅 (1 秒あたりのバイト数) を指定します。quality の値を維持するために必要な帯域幅を Flash Video で使用するには、bandwidth に 0 を指定します。デフォルト値は 16384 です。
 
quality:int — 必要な画質レベルを指定する整数です。各ビデオフレームに適用される圧縮率によって決まります。指定できる値は 1 (最低品質、最大圧縮率) から 100 (最高品質、圧縮なし) までです。帯域幅を超過するのを避けるために必要に応じて画質を変更するには、quality に 0 を指定します。

関連項目

イベントの詳細
activityevent 
イベントオブジェクトの型: flash.events.ActivityEvent
ActivityEvent.type property = flash.events.ActivityEvent.ACTIVITY

カメラがセッションを開始または終了したときに送出されます。

ActivityEvent.ACTIVITY 定数は、activity イベントオブジェクトの type プロパティ値を定義します。

このイベントには、次のプロパティがあります。

プロパティ
activatingデバイスがアクティブになっている場合は true、非アクティブになっている場合は false です。
bubblesfalse
cancelablefalse は、キャンセルするデフォルトの動作がないことを示します。
currentTargetイベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。
targetCamera オブジェクトや Microphone オブジェクトなど、セッションを開始または終了しているオブジェクトです。
statusevent  
イベントオブジェクトの型: flash.events.StatusEvent
StatusEvent.type property = flash.events.StatusEvent.STATUS

カメラがそのステータスをレポートしたときに送出されます。code プロパティの値が "Camera.muted" である場合、SWF ファイルのカメラへのアクセス許可を拒否したことになります。code プロパティの値が "Camera.unmuted" である場合、SWF ファイルのカメラへのアクセスを許可することになります。

status イベントオブジェクトの type プロパティの値を定義します。

このイベントには、次のプロパティがあります。

プロパティ
bubblesfalse
cancelablefalse は、キャンセルするデフォルトの動作がないことを示します。
codeオブジェクトのステータスの説明です。
currentTargetイベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。
level"status""warning""error" など、メッセージのカテゴリです。
targetそのステータスをレポートするオブジェクトです。

関連項目