| パッケージ | flash.media |
| クラス | public final class Camera |
| 継承 | Camera EventDispatcher Object |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0, Flash Player 9 |
カメラインスタンスは、横長の縦横比でビデオをキャプチャします。携帯電話など、画面の方向を変更できるデバイスの場合、カメラにアタッチされている Video オブジェクトでは、横長の縦横比の方向に縦型のビデオのみが表示されます。したがって、モバイルアプリケーションでは、ビデオを表示するときに自動回転しないようにするときは横長の方向を使用する必要があります。
iOS では、前方カメラからのビデオがミラー処理されます。Android では、このミラー処理は行われません。
オートフォーカスのカメラを搭載したモバイルデバイスでは、オートフォーカス機能が自動的に有効になります。カメラがコンティニュアスオートフォーカスに対応していない場合は(モバイルデバイス内蔵カメラの多くは非対応です)、Camera オブジェクトがビデオストリームに添付されているときに setMode() メソッドが呼び出されるとフォーカスが動作します。デスクトップコンピューターでは、オートフォーカスビヘイビアーはカメラのドライバーと設定に依存します。
Android および iOS 上の AIR アプリケーションでは、AIR アプリケーションがアクティブなフォアグラウンドアプリケーションでない場合、カメラによるビデオのキャプチャは実行されません。また、アプリケーションがバックグラウンドのときに、ストリーミング接続が切断される場合があります。iOS 上では、アプリケーションが GPU レンダリングモードを使用している場合、カメラのビデオは表示できません。ただし、この場合もカメラのビデオをサーバーにストリーミングすることは可能です。
AIR プロファイルのサポート:この機能は AIR for TV デバイスではサポートされません。複数のプロファイル間での API サポートについて詳しくは、AIR プロファイルのサポートを参照してください。ただし、AIR for TV デバイスでは、Camera.isSupported は true ですが Camera.getCamera() の返す値は常に null です。カメラへのアクセスはモバイルブラウザーではサポートされません。
オーディオのキャプチャに関する詳細については、Microphone クラスのトピックを参照してください。
重要:ユーザーがカメラへのアクセスを許可するか拒否するかを選択できるように、プライバシーダイアログボックスが表示されます。アプリケーションウィンドウのサイズは 215 × 138 ピクセル以上に設定してください。これは、ダイアログボックスを表示するために必要な最小サイズです。
Camera オブジェクトを作成または参照するには、getCamera() メソッドを使用します。
詳細
Michael Chaize:Android, AIR, and the Camera
関連する API エレメント
| プロパティ | 定義元 | ||
|---|---|---|---|
| activityLevel : Number [読み取り専用]
カメラが検知しているモーション量です。 | Camera | ||
| bandwidth : int [読み取り専用]
現在の送信ビデオフィードで使用できる最大帯域幅(バイト単位)です。 | Camera | ||
![]() | constructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。 | Object | |
| currentFPS : Number [読み取り専用]
現在のデータキャプチャレート(1 秒あたりのフレーム数)です。 | Camera | ||
| fps : Number [読み取り専用]
カメラの最大データキャプチャレート(1 秒あたりのフレーム数)です。 | Camera | ||
| height : int [読み取り専用]
現在のキャプチャの高さ(ピクセル単位)です。 | Camera | ||
| index : int [読み取り専用]
使用可能なすべてのカメラを表す Camera.names 配列でカメラの位置を指定する、0 から始まるインデックスです。 | Camera | ||
| isSupported : Boolean [静的] [読み取り専用]
現在のプラットフォームで Camera クラスがサポートされている場合、isSupported プロパティは true に設定されます。サポートされていない場合は、false に設定されます。 | Camera | ||
| keyFrameInterval : int [読み取り専用]
ビデオ圧縮アルゴリズムによって補間されるのではなく、完全送信されるビデオフレーム(キーフレームと呼ばれる)の数です。 | Camera | ||
| loopback : Boolean [読み取り専用]
カメラがキャプチャするローカルビューを、Flash Media Server を使用したライブ送信で使用されるように圧縮および解凍する(true)か、または圧縮されていない状態にする(false)かを示します。 | Camera | ||
| motionLevel : int [読み取り専用]
activity イベントを送出するために必要なモーションの量です。 | Camera | ||
| motionTimeout : int [読み取り専用]
カメラがモーション検知を停止してから、activity イベントが呼び出されるまでの時間(ミリ秒単位)です。 | Camera | ||
| muted : Boolean [読み取り専用]
ユーザーが Flash Player のプライバシーダイアログボックスでカメラへのアクセスを拒否した(true)か、許可した(false)かを示すブール値です。 | Camera | ||
| name : String [読み取り専用]
カメラのハードウェアから返される、現在のカメラの名前です。 | Camera | ||
| names : Array [静的] [読み取り専用]
使用可能なすべてのカメラの名前が含まれるストリング配列です。 | Camera | ||
| permissionStatus : String [静的] [読み取り専用]
カメラを使用する権限をアプリケーションが付与されたかどうかを判定します。 | Camera | ||
| position : String [読み取り専用]
デバイス上のカメラの位置を示します。 | Camera | ||
| quality : int [読み取り専用]
必要な画質レベルです。各ビデオフレームに適用される圧縮率によって決まります。 | Camera | ||
| width : int [読み取り専用]
現在のキャプチャの幅(ピクセル単位)です。 | Camera | ||
| メソッド | 定義元 | ||
|---|---|---|---|
![]() | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。 | EventDispatcher | |
ピクセルデータの矩形領域からバイト配列を入力します。各ピクセルごとに、符号なし整数(32 ビットの乗算されないピクセル値)をバイト配列に書き込みます。 | Camera | ||
ピクセルデータの矩形領域からベクターを入力します。 | Camera | ||
![]() |
イベントをイベントフローに送出します。 | EventDispatcher | |
最後のフレームをビットマップにコピーします。 | Camera | ||
[静的]
ビデオをキャプチャする Camera オブジェクトへの参照を返します。 | Camera | ||
![]() |
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。 | EventDispatcher | |
![]() |
オブジェクトに指定されたプロパティが定義されているかどうかを示します。 | Object | |
![]() |
Object クラスのインスタンスが、パラメーターとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。 | Object | |
![]() |
指定されたプロパティが存在し、列挙できるかどうかを示します。 | Object | |
![]() |
EventDispatcher オブジェクトからリスナーを削除します。 | EventDispatcher | |
アプリケーションからカメラを使用する権限を要求します。 | Camera | ||
ビデオ圧縮アルゴリズムによって補間されずに完全に送信されるビデオフレーム(キーフレームと呼ばれる)を指定します。 | Camera | ||
カメラのローカルビューに対して圧縮したビデオストリームを使用するかどうかを指定します。 | Camera | ||
カメラのキャプチャモードを指定の要件に最も近いネイティブモードに設定します。 | Camera | ||
activity イベントを送出するために必要なモーションの量を指定します。 | Camera | ||
![]() |
ループ処理に対するダイナミックプロパティの可用性を設定します。 | Object | |
現在の送信ビデオフィードの 1 秒あたりの最大帯域幅、または必要な画質を設定します。 | Camera | ||
![]() |
ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。 | Object | |
![]() |
指定されたオブジェクトのストリング表現を返します。 | Object | |
![]() |
指定されたオブジェクトのプリミティブな値を返します。 | Object | |
![]() |
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。 | EventDispatcher | |
| イベント | 概要 | 定義元 | ||
|---|---|---|---|---|
![]() | [ブロードキャストイベント] Flash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。 | EventDispatcher | ||
| カメラがセッションを開始または終了したときに送出されます。 | Camera | |||
![]() | [ブロードキャストイベント] Flash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを失って、非アクティブになったときに送出されます。 | EventDispatcher | ||
| デバイスのカメラを使用する権限をアプリケーションから要求したときに送出されます。 | Camera | |||
| カメラがそのステータスをレポートしたときに送出されます。 | Camera | |||
| ランタイムで新しいカメラフレームが処理されて、コピーできるようになった後に送出されます。 | Camera | |||
activityLevel | プロパティ |
activityLevel:Number [読み取り専用] | 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0, Flash Player 9 |
カメラが検知しているモーション量です。0(モーションは検知されていない)から 100(大量のモーションが検知されている)までの値が設定されます。このプロパティの値は、setMotionLevel() メソッドに設定を渡す必要があるかどうかを判断するのに役立ちます。
Video.attachCamera() メソッドが呼び出されていないため、使用可能なカメラがまだ使用されていない場合は、このプロパティが -1 に設定されます。
圧縮されていないローカルビデオだけをストリーミングする場合、このプロパティはイベントハンドラーに関数を割り当て済みであるときに限り設定されます。それ以外の場合は undefined になります。
実装
public function get activityLevel():Number例外
PermissionError — アプリケーションには、カメラを使用する権限がありません。
|
関連する API エレメント
bandwidth | プロパティ |
bandwidth:int [読み取り専用] | 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0, Flash Player 9 |
現在の送信ビデオフィードで使用できる最大帯域幅(バイト単位)です。値 0 は、ビデオのフレーム品質を維持するために必要な帯域幅をフィードで使用できることを示します。
このプロパティの値を設定するには、setQuality() メソッドを使用します。
実装
public function get bandwidth():int例外
PermissionError — アプリケーションには、カメラを使用する権限がありません。
|
関連する API エレメント
currentFPS | プロパティ |
currentFPS:Number [読み取り専用] | 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0, Flash Player 9 |
現在のデータキャプチャレート(1 秒あたりのフレーム数)です。このプロパティを設定することはできません。ただし、setMode() メソッドを使用すると、これに関係する fps プロパティを設定することができます。このプロパティは、データをキャプチャする際の希望最大フレームレートを指定します。
実装
public function get currentFPS():Number例外
PermissionError — アプリケーションには、カメラを使用する権限がありません。
|
関連する API エレメント
fps | プロパティ |
fps:Number [読み取り専用] | 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0, Flash Player 9 |
カメラの最大データキャプチャレート(1 秒あたりのフレーム数)です。最大データキャプチャレートは、カメラの性能によって異なります。このフレームレートを実現できない場合があります。
- このプロパティに必要な値を設定するには、
setMode()メソッドを使用します。 - 現在のデータキャプチャレートを調べるには、
currentFPSプロパティを使用します。
実装
public function get fps():Number例外
PermissionError — アプリケーションには、カメラを使用する権限がありません。
|
関連する API エレメント
height | プロパティ |
height:int [読み取り専用] | 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0, Flash Player 9 |
現在のキャプチャの高さ(ピクセル単位)です。このプロパティに値を設定するには、setMode() メソッドを使用します。
実装
public function get height():int例外
PermissionError — アプリケーションには、カメラを使用する権限がありません。
|
関連する API エレメント
index | プロパティ |
index:int [読み取り専用] | 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0, Flash Player 9 |
使用可能なすべてのカメラを表す Camera.names 配列でカメラの位置を指定する、0 から始まるインデックスです。
実装
public function get index():int例外
PermissionError — アプリケーションには、カメラを使用する権限がありません。
|
関連する API エレメント
isSupported | プロパティ |
keyFrameInterval | プロパティ |
keyFrameInterval:int [読み取り専用] | 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0, Flash Player 9 |
ビデオ圧縮アルゴリズムによって補間されるのではなく、完全送信されるビデオフレーム(キーフレームと呼ばれる)の数です。デフォルト値は 15 で、15 のフレームごとにフレームがキーフレームになります。1 はすべてのフレームがキーフレームであることを意味します。設定できる値は、1 ~ 300 です。
実装
public function get keyFrameInterval():int例外
PermissionError — アプリケーションには、カメラを使用する権限がありません。
|
関連する API エレメント
loopback | プロパティ |
loopback:Boolean [読み取り専用] | 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0, Flash Player 9 |
カメラがキャプチャするローカルビューを、Flash Media Server を使用したライブ送信で使用されるように圧縮および解凍する(true)か、または圧縮されていない状態にする(false)かを示します。デフォルト値は false です。
圧縮したストリームは、ビデオの品質設定のプレビューなど、テスト目的で使用する場合には役立ちますが、非常に処理コストがかかります。ローカルビューは圧縮され、送信するためにライブ接続で使用されるように編集され、さらにローカルで表示するために解凍されます。
この値を設定するには、Camera.setLoopback() を使用します。このプロパティが true である場合に使用する圧縮率を設定するには、Camera.setQuality() を使用します。
実装
public function get loopback():Boolean例外
PermissionError — アプリケーションには、カメラを使用する権限がありません。
|
関連する API エレメント
motionLevel | プロパティ |
motionLevel:int [読み取り専用] | 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0, Flash Player 9 |
activity イベントを送出するために必要なモーションの量です。使用可能な値の範囲は 0 ~ 100 です。デフォルト値は 50 です。
ビデオは motionLevel プロパティの値に関係なく表示できます。詳細については、setMotionLevel()を参照してください。
実装
public function get motionLevel():int例外
PermissionError — アプリケーションには、カメラを使用する権限がありません。
|
関連する API エレメント
motionTimeout | プロパティ |
motionTimeout:int [読み取り専用] | 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0, Flash Player 9 |
カメラがモーション検知を停止してから、activity イベントが呼び出されるまでの時間(ミリ秒単位)です。デフォルト値は 2000(2 秒)です。
この値を設定するには、setMotionLevel() を使用します。
実装
public function get motionTimeout():int例外
PermissionError — アプリケーションには、カメラを使用する権限がありません。
|
関連する API エレメント
muted | プロパティ |
muted:Boolean [読み取り専用] | 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0, Flash Player 9 |
ユーザーが Flash Player のプライバシーダイアログボックスでカメラへのアクセスを拒否した(true)か、許可した(false)かを示すブール値です。この値が変わると、status イベントが送出されます。
実装
public function get muted():Boolean例外
PermissionError — アプリケーションには、カメラを使用する権限がありません。
|
関連する API エレメント
name | プロパティ |
name:String [読み取り専用] | 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0, Flash Player 9 |
カメラのハードウェアから返される、現在のカメラの名前です。
実装
public function get name():String例外
PermissionError — アプリケーションには、カメラを使用する権限がありません。
|
関連する API エレメント
names | プロパティ |
names:Array [読み取り専用] | 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0, Flash Player 9 |
使用可能なすべてのカメラの名前が含まれるストリング配列です。この配列にアクセスにしても、Flash Player のプライバシーダイアログボックスは表示されません。この配列には、各カメラの 0 から始まるインデックスが含まれ、この配列を使用してシステム上のカメラ数(names.length によって取得)を把握できます。
names プロパティを呼び出すと、ハードウェアを広範囲にわたって調べる必要があります。ほとんどの場合は、デフォルトのカメラを使用できます。
実装
public static function get names():Array例外
PermissionError — アプリケーションには、カメラを使用する権限がありません。
|
関連する API エレメント
permissionStatus | プロパティ |
position | プロパティ |
position:String [読み取り専用] | 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 3.0 |
デバイス上のカメラの位置を示します。
position プロパティは、モバイルデバイス上のカメラがデバイスの前方と後方のどちらにあるのかを特定するために使用します。次の関数は、指定する位置にあるカメラが見つかるまで、使用可能なすべてのカメラをチェックします。指定する位置のカメラがない場合は、デフォルトのカメラが返されます。
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();
モバイルデバイスでは通常、カメラの位置は CameraPosition.FRONT または CameraPosition.BACK です。Camera の位置が特定できない場合、CameraPosition.UNKNOWN という位置が返されます。デスクトッププラットフォームでは、位置は常に CameraPosition.UNKNOWN です。
このプロパティの有効な値の定数は、CameraPosition クラスで定義されます。
実装
public function get position():String例外
PermissionError — アプリケーションには、カメラを使用する権限がありません。
|
関連する API エレメント
quality | プロパティ |
quality:int [読み取り専用] | 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0, Flash Player 9 |
必要な画質レベルです。各ビデオフレームに適用される圧縮率によって決まります。指定できる品質値は 1(最低品質、最大圧縮率)~ 100(最高品質、圧縮なし)です。デフォルト値は 0 です。これは、使用できる帯域幅を超えることがないように、画質が必要に応じて変更されることを示します。
このプロパティの値を設定するには、setQuality() メソッドを使用します。
実装
public function get quality():int例外
PermissionError — アプリケーションには、カメラを使用する権限がありません。
|
関連する API エレメント
width | プロパティ |
width:int [読み取り専用] | 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0, Flash Player 9 |
現在のキャプチャの幅(ピクセル単位)です。このプロパティに必要な値を設定するには、setMode() メソッドを使用します。
実装
public function get width():int例外
PermissionError — アプリケーションには、カメラを使用する権限がありません。
|
関連する API エレメント
copyToByteArray | () | メソッド |
public function copyToByteArray(rect:Rectangle, destination:ByteArray):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 11.4, AIR 3.4 |
ピクセルデータの矩形領域からバイト配列を入力します。
各ピクセルごとに、符号なし整数(32 bit の乗算されないピクセル値)をバイト配列に書き込みます。配列は、すべてのピクセルを保持するのに必要なバイト数にリサイズされます。
パラメーター
rect:Rectangle — 現在の BitmapData オブジェクト内の矩形領域です。
| |
destination:ByteArray — 特定の矩形内のピクセルを表す ByteArray です。
|
例外
PermissionError — アプリケーションには、カメラを使用する権限がありません。
| |
TypeError — rect が null です。
| |
TypeError — 宛先が null です。
|
関連する API エレメント
copyToVector | () | メソッド |
public function copyToVector(rect:Rectangle, destination:Vector.<uint>):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 11.4, AIR 3.4 |
ピクセルデータの矩形領域からベクターを入力します。
各ピクセルごとに、符号なし整数(32 ビットの乗算されないピクセル値)をベクターに書き込みます。ベクターは、すべてのピクセルを保持するのに必要なエントリ数にリサイズされます。
パラメーター
rect:Rectangle — 現在の BitmapData オブジェクト内の矩形領域です。
| |
destination:Vector.<uint> — Vector です。特定の矩形内のピクセルを表す <uint> です。
|
例外
PermissionError — アプリケーションには、カメラを使用する権限がありません。
| |
TypeError — rect が null です。
| |
TypeError — 宛先が null です。
|
関連する API エレメント
drawToBitmapData | () | メソッド |
public function drawToBitmapData(destination:BitmapData):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 11.4, AIR 3.4 |
最後のフレームをビットマップにコピーします。
このメソッドは、最後のフレームのコンテンツを BitmapData インスタンスにコピーします。
パラメーター
destination:BitmapData — 最後のフレームを格納する BitmapData インスタンスオブジェクトです。
|
例外
ArgumentError — destination が小さすぎる場合の kInvalidBitmapDataError
|
関連する API エレメント
getCamera | () | メソッド |
public static function getCamera(name:String = null):Camera| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0, Flash Player 9 |
ビデオをキャプチャする Camera オブジェクトへの参照を返します。ビデオのキャプチャを開始するには、Camera オブジェクトを Video オブジェクトに関連付ける必要があります。詳細については、Video.attachCamera() のトピックを参照してください。ビデオを Flash Media Server に送信するには、NetStream.attachCamera() を呼び出して、Camera オブジェクトを NetStream オブジェクトに関連付けます。
getCamera() メソッドを複数回呼び出した場合は、同じカメラドライバーへの参照が返されます。したがって、firstCam:Camera = getCamera() と secondCam:Camera = getCamera() のようなコードが含まれている場合、firstCam と secondCam はどちらも、ユーザーのデフォルトである同じカメラを参照します。
前方カメラと後方カメラを備えたモバイルデバイスでは、一度に片方のカメラからしかビデオをキャプチャすることはできません。
一般には、name パラメーターの値は指定せず、単に getCamera() を使用してデフォルトのカメラへの参照を取得します。ユーザーは、このセクションで後述する「カメラ」ボックスで、使用するデフォルトのカメラを指定できます。
ActionScript を使用してユーザーによるカメラへのアクセスの許可または拒否を設定することはできませんが、ユーザーによるカメラのアクセス許可の設定が可能な Adobe Flash Player 設定のカメラ設定ダイアログボックスを表示することができます。 attachCamera() メソッドを使用する SWF ファイルが getCamera() メソッドによって返されたカメラを Video オブジェクトまたは NetStream オブジェクトに接続しようとすると、Flash Player はカメラへのアクセスの許可または拒否をユーザーに選択させるダイアログボックスを表示します。アプリケーションウィンドウのサイズは必ず 215×138 ピクセル以上に設定してください。これは、ダイアログボックスを表示するために必要な Flash Player の最小サイズです。ユーザーがカメラ設定のダイアログボックスに応答すると、Flash Player はユーザーの応答を示す status イベント内の情報オブジェクトを返します。Camera.muted と Camera.Unmuted はそれぞれ、ユーザーによるカメラへのアクセスの拒否と許可を示します。status イベントを使用せずにユーザーがカメラへのアクセスを拒否したか許可したかを判断するには、muted プロパティを使用します。
Flash Player で再生中の SWF ファイルを右クリック(Windows および Linux)または Control キーを押しながらクリック(Macintosh)し、設定を選択してプライバシーダイアログで「後で確認」を選択すると、ユーザーは特定のドメインに対する永続的なプライバシー設定を指定できます。ユーザーが「後で確認」を選択していた場合、SWF ファイルがこのドメインからカメラにアクセスすることを許可するか拒否するかを確認するメッセージは表示されません。
注意:ユーザーが Flash Player の設定ダイアログボックスで「後で確認」を選択して既にアクセスを拒否している場合、attachCamera() メソッドではカメラへのアクセスの許可または拒否を確認するダイアログボックスは表示されません。この場合、Security.showSettings(SecurityPanel.PRIVACY) を使用するユーザーに対して Adobe Flash Player 設定パネルの「プライバシー」を表示して許可または拒否の設定を変更するように要求することができます。
getCamera() が null を返した場合、カメラは他のアプリケーションによって使用されているか、そのシステムにはカメラがインストールされていません。カメラがインストールされているかどうかを調べるには、names.length プロパティを使用します。Flash Player 設定パネルの「カメラ」を表示して、getCamera() が参照するカメラをユーザーが選択できるようにするには、Security.showSettings(SecurityPanel.CAMERA) を使用します。
カメラのハードウェアスキャンには時間がかかります。ランタイムによってカメラが 1 つでも見つかると、その Flash Player インスタンスの存続中は、ハードウェアが再びスキャンされることはありません。しかし、カメラが見つからなかった場合は、getCamera が呼び出されるたびにハードウェアがスキャンされます。この動作は、カメラは存在するのに無効になっている場合に便利です。getCamera を呼び出すための「再試行」ボタンを SWF ファイルに用意すると、ユーザーが SWF ファイルを再起動しなくてもカメラを見つけることができます。
パラメーター
name:String (default = null) — 取得するカメラを names プロパティで返される配列から決定します。多くのアプリケーションでは、パラメーターを省略してデフォルトのカメラを取得します。このパラメーターの値を指定するには、Camera.names 配列内の 0 ベースのインデックス位置のストリング表現を使用します。例えば、配列内の 3 番目のカメラを指定するには、Camera.getCamera("2") を使用します。
|
Camera — name パラメーターを指定しない場合は、デフォルトのカメラへの参照を返します。デフォルトのカメラが他のアプリケーションで使用されている場合は、使用できる最初のカメラへの参照を返します。複数のカメラがインストールされている場合、ユーザーは Flash Player 設定パネルの「カメラ」でデフォルトのカメラを指定できます。利用できるカメラがない場合、またはカメラがインストールされていない場合は、null を返します。
|
イベント
status: — カメラがそのステータスをレポートしたときに送出されます。カメラにアクセスする前に、Flash Player にはプライバシーダイアログボックスが表示されて、ユーザーがカメラへのアクセスを許可または拒否することができます。code プロパティの値が "Camera.Muted" である場合、SWF ファイルのカメラへのアクセス許可を拒否したことになります。code プロパティの値が "Camera.Unmuted" の場合、SWF ファイルがユーザーのカメラにアクセスすることをユーザーが許可しています。
|
関連する API エレメント
例 ( この例の使用方法 )
Camera.getCamera() メソッドは、カメラオブジェクトへの参照を返します。利用できるカメラがない場合、またはカメラが取り付けられていない場合は、null を返します。カメラが見つかったかどうか、およびユーザーがカメラへのアクセスを許可したかどうかを if ステートメントでチェックします。 ユーザーがアクセスを拒否した場合、muted プロパティは true に設定されます。
通常は attachCamera() メソッドが呼び出されると、Flash Player によるカメラへのアクセスを許可するかどうかをユーザーに確認するダイアログボックスが表示されます。 ただし、ユーザーがアクセスを拒否し、「後で確認」オプションを選択した場合、ダイアログボックスなどは何も表示されません。 ユーザーがカメラへのアクセスを許可するオプションを使用できるように、Flash Player 設定ダイアログボックスを起動するためにテキストフィールドをクリックするようにという指示が myTextField テキストフィールドに表示されます。
clickHandler() メソッドは Security.showSettings() メソッドを呼び出します。これにより、設定ダイアログボックスのプライバシーパネルが表示されます。 ユーザーがアクセスを許可した場合、StatusEvent.STATUS イベントが送出され、イベントの code プロパティの値が Camera.Unmuted に設定されます。 (同時にカメラオブジェクトの mute プロパティが false に設定されます。)
ユーザーがアクセスを許可した場合、ユーザーの設定のステータス変更をリスニングするために追加された statusHandler() メソッドにより、connectCamera() メソッドが呼び出されます。 connectCamera() メソッドは、キャプチャされたストリームの幅と高さを使用してビデオオブジェクトをインスタンス化します。カメラでキャプチャされたビデオを表示するため、ビデオストリームへの参照をビデオオブジェクトに関連付けて、ビデオオブジェクトを表示リストに追加します。
さらに、Timer オブジェクトを開始します。1 秒ごとに Timer オブジェクトのタイマーイベントが送出され、timerHandler() メソッドが呼び出されます。timerHandler() メソッドが表示され、Camera オブジェクトのいくつかのプロパティが更新されます。
注意:この例では、変更されるプロパティは currentFPS プロパティのみです。
package {
import flash.display.Sprite;
import flash.media.Camera;
import flash.media.Video;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.events.StatusEvent;
import flash.events.MouseEvent;
import flash.system.SecurityPanel;
import flash.system.Security;
public class Camera_getCameraExample extends Sprite {
private var myTextField:TextField;
private var cam:Camera;
private var t:Timer = new Timer(1000);
public function Camera_getCameraExample() {
myTextField = new TextField();
myTextField.x = 10;
myTextField.y = 10;
myTextField.background = true;
myTextField.selectable = false;
myTextField.autoSize = TextFieldAutoSize.LEFT;
if (Camera.isSupported)
{
cam = Camera.getCamera();
if (!cam) {
myTextField.text = "No camera is installed.";
} else if (cam.muted) {
myTextField.text = "To enable the use of the camera,\n"
+ "please click on this text field.\n"
+ "When the Flash Player Settings dialog appears,\n"
+ "make sure to select the Allow radio button\n"
+ "to grant access to your camera.";
myTextField.addEventListener(MouseEvent.CLICK, clickHandler);
}else {
myTextField.text = "Connecting";
connectCamera();
}
addChild(myTextField);
t.addEventListener(TimerEvent.TIMER, timerHandler);
}else {
myTextField.text = "The Camera class is not supported on this device.";
}
}
private function clickHandler(e:MouseEvent):void {
Security.showSettings(SecurityPanel.PRIVACY);
cam.addEventListener(StatusEvent.STATUS, statusHandler);
myTextField.removeEventListener(MouseEvent.CLICK, clickHandler);
}
private function statusHandler(event:StatusEvent):void {
if (event.code == "Camera.Unmuted") {
connectCamera();
cam.removeEventListener(StatusEvent.STATUS, statusHandler);
}
}
private function connectCamera():void {
var vid:Video = new Video(cam.width, cam.height);
vid.x = 10;
vid.y = 10;
vid.attachCamera(cam);
addChild(vid);
t.start();
}
private function timerHandler(event:TimerEvent):void {
myTextField.y = cam.height + 20;
myTextField.text = "";
myTextField.appendText("bandwidth: " + cam.bandwidth + "\n");
myTextField.appendText("currentFPS: " + Math.round(cam.currentFPS) + "\n");
myTextField.appendText("fps: " + cam.fps + "\n");
myTextField.appendText("keyFrameInterval: " + cam.keyFrameInterval + "\n");
}
}
}
requestPermission | () | メソッド |
public function requestPermission():void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 24.0 |
アプリケーションからカメラを使用する権限を要求します。
イベント
PermissionStatus: — 要求された権限がユーザーによって付与/拒否されたときに送出されます。
|
setKeyFrameInterval | () | メソッド |
public function setKeyFrameInterval(keyFrameInterval:int):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0, Flash Player 9 |
ビデオ圧縮アルゴリズムによって補間されるのではなく、(キーフレームと呼ばれる)完全送信されるビデオフレームを指定します。このメソッドは、Flash Media Server を使用してビデオを送信している場合にだけ使用できます。
Flash Video 圧縮アルゴリズムでは、ビデオの最後のフレームからの変更のみを送信して、ビデオを圧縮します。これらの変更部分が補間フレームと見なされます。ビデオのフレームは、前のフレームの内容に応じて補間されます。ただし、キーフレームは完全なビデオフレームであるため、前のフレームから補間されることはありません。
keyFrameInterval パラメーターの値を設定する方法を判別するには、帯域幅の使用量とビデオ再生アクセシビリティの両方を検討します。例えば、keyFrameInterval に対して大きい値を指定すると(キーフレームの送信が少なくなる)、帯域幅の使用量が減少します。ただし、これはビデオの特定のポイントで再生ヘッドの位置を指定する際に要する時間を増やすことになります。つまり、ビデオを再開する際、より多くの先行ビデオフレームを補間しなければならない場合があります。
逆に、keyFrameInterval に対して小さい値を指定すると(キーフレームの送信が多くなる)、ビデオフレーム全体の送信が多くなるため、帯域幅の使用量が増加しますが、録画済みのビデオ内で特定のビデオフレームをシークする際に要する時間は減ります。
パラメーター
keyFrameInterval:int — ビデオ圧縮アルゴリズムによって補間されるのではなく、(キーフレームとして)完全送信されるビデオフレームを指定する値です。1 を指定すると、すべてのフレームがキーフレームになり、3 を指定すると、3 つのフレームごとにフレームがキーフレームになります(以下同様)。有効な値は、1 ~ 48 です。
|
例外
PermissionError — アプリケーションには、カメラを使用する権限がありません。
|
関連する API エレメント
setLoopback | () | メソッド |
public function setLoopback(compress:Boolean = false):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0, Flash Player 9 |
カメラのローカルビューに対して圧縮したビデオストリームを使用するかどうかを指定します。このメソッドは、Flash Media Server を使用してビデオを送信している場合にだけ使用できます。compress を true に設定すると、リアルタイムで表示したときの、ユーザーに対するビデオの表示状態をより正確に確認できます。
圧縮したストリームは、ビデオの品質設定のプレビューなど、テスト目的で使用する場合には役立ちますが、ローカルビューは単に圧縮されるだけではないので、非常に処理コストがかかります。ローカルビューは圧縮された後、ライブ接続で送信する場合と同じように編集され、さらにローカルで表示するために解凍されます。
compress を true に設定した場合に使用する圧縮率を設定するには、Camera.setQuality() を使用します。
パラメーター
compress:Boolean (default = false) — カメラが受け取るローカルビューに対して、圧縮したビデオストリーム(true)を使用するか、または圧縮されていないストリーム(false)を使用するかを指定します。
|
例外
PermissionError — アプリケーションには、カメラを使用する権限がありません。
|
関連する API エレメント
setMode | () | メソッド |
public function setMode(width:int, height:int, fps:Number, favorArea:Boolean = true):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0, Flash Player 9 |
カメラのキャプチャモードを指定の要件に最も近いネイティブモードに設定します。指定したすべてのパラメーターに一致するネイティブモードがカメラにない場合は、要求したモードに最も近いキャプチャモードが選択されます。これにより、画像の一部が切り取られたり、フレームが削除される可能性があります。
デフォルトでは、画像のサイズを維持するために、必要に応じてフレームが削除されます。削除されるフレームの数を最小限に抑えるには、false を favorArea パラメーターで渡します。ただし、これによって画像のサイズは小さくなります。
ネイティブモードを選択した場合は、指定した縦横比ができる限り維持されます。例えば、myCam.setMode(400, 400, 30) コマンドを実行し、そのカメラで利用できる最大の幅と高さが 320 および 288 である場合は、幅と高さがともに 288 に設定されます。幅と高さを同じ値に設定することで、要求された 1:1 の縦横比が維持されます。
要求した値に最も近いモードが選択された後に、割り当てられた幅、高さ、ビデオキャプチャレートを調べるには、width、height、fps の各プロパティを使用します。
Flash Media Server を使用する場合は、単一のフレームのキャプチャまたはコマ撮り写真の作成もできます。詳細については、NetStream.attachCamera() のトピックを参照してください。
パラメーター
width:int — 要求されたキャプチャの幅(ピクセル単位)です。デフォルト値は 160 です。
| |
height:int — 要求されたキャプチャの高さ(ピクセル単位)です。デフォルト値は 120 です。
| |
fps:Number — 要求されたデータキャプチャレート(1 秒あたりのフレーム数)です。デフォルト値は 15 です。
| |
favorArea:Boolean (default = true) — 指定要件に合うネイティブモードがカメラにない場合に、幅、高さ、フレームレートをどのように操作するかを指定します。デフォルト値は true で、キャプチャサイズを維持することを示します。このパラメーターを使用すると、width 値と height 値に最も近いモードが選択されます。ただし、これによりフレームレートが低下し、パフォーマンスに悪影響を及ぼすことがあります。カメラの高さと幅よりも最大フレームレートを優先するには、false を favorArea パラメーターに指定します。
|
例外
PermissionError — アプリケーションには、カメラを使用する権限がありません。
|
関連する API エレメント
例 ( この例の使用方法 )
ステージは拡大 / 縮小されないように設定されます。Camera.getCamera() メソッドは、カメラオブジェクトへの参照を返します。利用できるカメラがない場合、またはカメラが取り付けられていない場合は、null を返します。カメラが存在する場合は、connectCamera() メソッドが呼び出されます。connectCamera() メソッドは、ビデオオブジェクトをインスタンス化します。カメラでキャプチャされたビデオを表示するため、ビデオストリームへの参照をビデオオブジェクトに関連付けて、ビデオオブジェクトを表示リストに追加します。MouseEvent.CLICK イベントのイベントリスナーも設定します。ユーザーがステージをクリックすると、clickHandler() メソッドが呼び出されます。 このメソッドはキャプチャされたビデオの幅を確認し、カメラキャプチャモードの幅、高さおよび必要なキャプチャレート(1 秒あたりのフレーム数)を設定します。これらの設定を有効にするために、ビデオオブジェクトを削除して再作成する必要があります。また、ビデオの幅と高さをカメラオブジェクトの幅と高さに設定する必要があります。
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 | () | メソッド |
public function setMotionLevel(motionLevel:int, timeout:int = 2000):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0, Flash Player 9 |
activity イベントを送出するために必要なモーションの量を指定します。アクティビティがない場合に、モーションが停止したと判定してイベントを送出するまでの時間をミリ秒単位で設定することもできます。
注意:ビデオは motionLevel パラメーターの値に関係なく表示できます。このパラメーターは、ビデオを実際にキャプチャまたは表示するかどうかではなく、イベントを送出するタイミングと状況のみを決定します。
カメラがモーションをまったく検知しないようにするには、motionLevel パラメーターに 100 を指定します。この場合、activity イベントは送出されません。この値は、通常はテスト目的にのみ使用します。例えば、イベントが送出されたときに通常トリガーされるハンドラーを一時的に無効にする場合などに使用します。
カメラが現在検知しているモーションの量を調べるには、activityLevel プロパティを使用します。モーションの精度(sensitivity)の値がアクティビティの値に直接対応します。モーションがまったく存在しない場合、アクティビティ値は 0 です。継続的にモーションが発生している場合、アクティビティ値は 100 です。移動していない場合、アクティビティ値はモーション精度値よりも低くなります。移動している場合、アクティビティ値は頻繁にモーション精度値を超えます。
このメソッドの目的は Microphone.setSilenceLevel() メソッドに似ています。どちらのメソッドも、activity イベントの送出方法を指定するために使用します。ただし、パブリッシュするストリームに対する影響という点では、この 2 つのメソッドは大きく異なります。
Microphone.setSilenceLevel()は帯域幅を最適化するように設計されています。オーディオストリームが無音と考えられる場合には、オーディオデータは送信されません。代わりに、無音状態が始まったことを示すメッセージが送信されます。Camera.setMotionLevel()はモーションを検知し、使用する帯域幅には影響しないように設計されています。ビデオストリームでモーションが検知されない間も、ビデオは送信されます。
パラメーター
motionLevel:int — activity イベントを送出するために必要なモーションの量を指定します。使用可能な値の範囲は 0 ~ 100 です。デフォルト値は 50 です。
| |
timeout:int (default = 2000) — アクティビティがない場合に、アクティビティが停止したと判定して activity イベントを送出するまでの経過時間をミリ秒単位で指定します。デフォルト値は 2000 ミリ秒(2 秒)です。
|
例外
PermissionError — アプリケーションには、カメラを使用する権限がありません。
|
関連する API エレメント
例 ( この例の使用方法 )
Camera.getCamera() メソッドは、カメラオブジェクトへの参照を返します。利用できるカメラがない場合、またはカメラが取り付けられていない場合は、null を返します。if ステートメントでカメラが利用できるかどうかをチェックし、利用できる場合は connectCamera() メソッドを呼び出します。connectCamera() メソッドは、キャプチャされたストリームの幅と高さを使用してビデオオブジェクトをインスタンス化します。カメラでキャプチャされたビデオを表示するため、ビデオストリームへの参照をビデオオブジェクトに関連付けて、ビデオオブジェクトを表示リストに追加します。通常は attachCamera() メソッドが呼び出されると、Flash Player によるカメラへのアクセスを許可するかどうかをユーザーに確認するダイアログボックスが表示されます。 ただし、ユーザーがアクセスを拒否し、「後で確認」オプションを選択した場合、ダイアログボックスは表示されず、何も表示されません。 ユーザーがカメラへのアクセスを許可するオプションを確実に設定できるようにするため、system.Security.showSettings() メソッドを使用して Flash Player 設定ダイアログボックスを表示します。
アクティビティイベントが呼び出される前に、setMotionLevel() メソッドによってアクティビティのレベル(モーションの量)を 5(わずかな動きも検出する)に設定します。カメラがモーション検知を停止してからアクティビティイベントが呼び出されるまでの時間を 1 秒(1000 ミリ秒)に設定します。アクティビティなしの状態で 1 秒が経過するか、またはアクティビティのレベルが 5 に達すると、ActivityEvent.ACTIVITY イベントが送出され、activityHandler() メソッドが呼び出されます。アクティビティのレベルによってイベントがトリガーされた場合、activating プロパティが true に設定され、Timer オブジェクトが開始されます。1 秒ごとに Timer オブジェクトのタイマーイベントが送出され、timerHandler() メソッドが呼び出され、現在のアクティビティレベルが表示されます。(5 以上のレベルによりタイマーがトリガーされますが、表示される現在のアクティビティのレベルはそれより小さい数値になる場合があります。)
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 | () | メソッド |
public function setQuality(bandwidth:int, quality:int):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0, Flash Player 9 |
現在の送信ビデオフィードの 1 秒あたりの最大帯域幅、または必要な画質を設定します。一般に、このメソッドは、Flash Media Server を使用してビデオを送信している場合にだけ使用します。
このメソッドを使用して、送信ビデオフィードの要素として帯域幅と画質のどちらがそのアプリケーションにとって重要かを指定します。
- 帯域幅の使用量を優先する場合は、
bandwidthに数値を、qualityに 0 を指定します。こうすると、指定した帯域幅内で最高品質のビデオが送信されます。必要であれば、指定の帯域幅を超えるのを防ぐために、画質が下げられます。一般には、モーションが増えるほど、画質は下がります。 - 画質を優先する場合は、
bandwidthに 0 を、qualityに数値を指定します。こうすると、指定した画質を維持するために必要なだけの帯域幅が使用されます。必要であれば、画質を維持するためにフレームレートが下げられます。一般には、モーションが増えるほど、使用する帯域幅も増加します。 - 帯域幅と品質の両方の重要性が同程度である場合は、両方のパラメーターに数値を指定します。指定の品質を達成でき、指定の帯域幅を超えない範囲のビデオが送信されます。必要であれば、指定の帯域幅を超えることなく画質を維持するために、フレームレートが下げられます。
パラメーター
bandwidth:int — 現在の送信ビデオフィードで使用できる最大帯域幅(1 秒あたりのバイト数)を指定します。quality の値を維持するために必要な帯域幅をビデオが使用できるように指定するには、bandwidth に対して 0 を渡します。デフォルト値は 16384 です。
| |
quality:int — 必要な画質レベルを指定する整数です。各ビデオフレームに適用される圧縮率によって決まります。指定できる値は 1(最低品質、最大圧縮率)から 100(最高品質、圧縮なし)までです。帯域幅を超過するのを避けるために必要に応じて画質を変更するには、quality に 0 を指定します。
|
例外
PermissionError — アプリケーションには、カメラを使用する権限がありません。
|
関連する API エレメント
activity | イベント |
flash.events.ActivityEventプロパティ ActivityEvent.type =
flash.events.ActivityEvent.ACTIVITY| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0, Flash Player 9 |
カメラがセッションを開始または終了したときに送出されます。Camera.setMotionLevel() を呼び出して、activity イベントをトリガーするために必要なモーション量を指定するか(activating 値を true に設定)、activity イベントをトリガーする前に経過する必要があるアクティビティを実行しない時間を指定します(activating 値を false に設定)。
ActivityEvent.ACTIVITY 定数は、type プロパティ(activity イベントオブジェクト)の値を定義します。
このイベントには、次のプロパティがあります。
| プロパティ | 値 |
|---|---|
activating | デバイスがアクティブになっている場合は true、非アクティブになっている場合は false です。 |
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
target | Camera オブジェクトや Microphone オブジェクトなど、セッションを開始または終了しているオブジェクトです。 |
permissionStatus | イベント |
flash.events.PermissionEventプロパティ PermissionEvent.type =
flash.events.PermissionEvent.PERMISSION_STATUS| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 24.0 |
デバイスのカメラを使用する権限をアプリケーションから要求したときに送出されます。status プロパティの値を確認すると、権限が付与されたか拒否されたかを判定できます。
関連する API エレメント
status | イベント |
flash.events.StatusEventプロパティ StatusEvent.type =
flash.events.StatusEvent.STATUS| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 9, AIR (unsupported) |
カメラがそのステータスをレポートしたときに送出されます。カメラにアクセスする前に、プライバシーダイアログボックスが表示されて、ユーザーがカメラへのアクセスを許可または拒否することができます。code プロパティの値が "Camera.Muted" である場合、SWF ファイルのカメラへのアクセス許可を拒否したことになります。code プロパティの値が "Camera.Unmuted" の場合、SWF ファイルがユーザーのカメラにアクセスすることをユーザーが許可しています。
注意:このイベントは、AIR プラットフォームでは送出されません。これは Flash Player でのみ使用されます。
type プロパティ(status イベントオブジェクト)の値を定義します。
このイベントには、次のプロパティがあります。
| プロパティ | 値 |
|---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
code | オブジェクトのステータスの説明です。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
level | "status"、"warning"、"error" など、メッセージのカテゴリです。 |
target | そのステータスをレポートするオブジェクトです。 |
関連する API エレメント
videoFrame | イベント |
flash.events.Eventプロパティ Event.type =
flash.events.Event.VIDEO_FRAME| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 11.4, AIR 3.4 |
ランタイムで新しいカメラフレームが処理されて、コピーできるようになった後に送出されます。
Event.VIDEO_FRAME 定数は、videoFrame イベントオブジェクトの type プロパティの値を定義します。
このイベントには、次のプロパティがあります。
| プロパティ | 値 |
|---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
target | このイベントを送出した Camera オブジェクトです。 |
関連する API エレメント
activity イベントはセッションの開始時と終了時(存在する場合)に送出され、activityHandler() メソッドによって捕捉されます。このメソッドはイベントの情報を出力します。
注意:この例を正しく機能させるには、コンピューターにカメラを接続しておく必要があります。
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:34 AM Z
継承されるパブリックプロパティを隠す
継承されるパブリックプロパティを表示