パッケージ | flash.media |
クラス | public class CameraUI |
継承 | CameraUI EventDispatcher Object |
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 2.5 |
launch()
メソッドでは、デバイスがデフォルトのカメラアプリケーションを開く必要があります。キャプチャされる画像またはビデオは、complete イベントに対して送出される MediaEvent オブジェクトで使用できます。デフォルトのカメラアプリケーションは多様なフォーマットの画像またはビデオを保存できるため、返されるメディアオブジェクトを読み込んで AIR ランタイムで表示できる保証はありません。
一部のプラットフォームでは、カメラから返されるメディアオブジェクトに、ファイルベースのメディアプロミスとしてアクセスできます。そうでないプラットフォームでは、メディアプロミスがファイルベースではなく、MediaPromise オブジェクトの file
および relativePath
プロパティが null
になっています。これらのプロパティは、複数種類のプラットフォームで実行されるコードでは使用しないようにしてください。
Android では、外部ストレージカードが使用できない場合(ユーザーが USB 大容量ストレージデバイスとしてカードをマウントした場合など)、デフォルトのカメラアプリケーションは開きません。さらに、カメラを起動した AIR アプリケーションはフォーカスを失います。デバイスが少ないリソースで実行される場合、メディアのキャプチャが完了する前に、オペレーティングシステムによって AIR アプリケーションが停止される可能性があります。
一部のプラットフォームでは、メディアオブジェクトは自動的にデバイスのメディアライブラリに保存されます。デフォルトのカメラアプリケーションで画像やビデオの保存が自動的に行われないプラットフォームでは、CameraRoll addBitmapData()
関数を使用することでメディアオブジェクトを保存できます。
AIR プロファイルのサポート:この機能はモバイルデバイスでサポートされますが、デスクトップオペレーティングシステムまたは AIR for TV デバイスではサポートされません。CameraUI.isSupported
プロパティを使用して、サポートされているかどうかを実行時にテストすることができます。複数のプロファイル間での API サポートについて詳しくは、AIR プロファイルのサポートを参照してください。
詳細
プロパティ | 定義元 | ||
---|---|---|---|
constructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。 | Object | ||
isSupported : Boolean [静的] [読み取り専用]
現在のデバイスで CameraUI クラスがサポートされているかどうかをレポートします。 | CameraUI | ||
permissionStatus : String [静的] [読み取り専用]
カメラを使用する権限をアプリケーションが付与されたかどうかを判定します。 | CameraUI |
メソッド | 定義元 | ||
---|---|---|---|
CameraUI()
CameraUI オブジェクトを作成します。 | CameraUI | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。 | EventDispatcher | ||
イベントをイベントフローに送出します。 | EventDispatcher | ||
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。 | EventDispatcher | ||
オブジェクトに指定されたプロパティが定義されているかどうかを示します。 | Object | ||
Object クラスのインスタンスが、パラメーターとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。 | Object | ||
デバイスでデフォルトのカメラアプリケーションを起動します。 | CameraUI | ||
指定されたプロパティが存在し、列挙できるかどうかを示します。 | Object | ||
EventDispatcher オブジェクトからリスナーを削除します。 | EventDispatcher | ||
カメラ UI にアクセスする権限を要求します。 | CameraUI | ||
ループ処理に対するダイナミックプロパティの可用性を設定します。 | Object | ||
ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。 | Object | ||
指定されたオブジェクトのストリング表現を返します。 | Object | ||
指定されたオブジェクトのプリミティブな値を返します。 | Object | ||
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。 | EventDispatcher |
イベント | 概要 | 定義元 | ||
---|---|---|---|---|
[ブロードキャストイベント] Flash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。 | EventDispatcher | |||
ユーザーが画像またはビデオを保存せずに Camera UI を閉じると、cancel イベントが送出されます。 | CameraUI | |||
ユーザーが静止画像またはビデオを Camera UI でキャプチャすると、complete イベントが送出されます。 | CameraUI | |||
[ブロードキャストイベント] Flash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを失って、非アクティブになったときに送出されます。 | EventDispatcher | |||
デフォルトのカメラを開くことができない場合、error イベントが送出されます。 | CameraUI | |||
カメラ UI にアクセスする権限をアプリケーションから要求したときに送出されます。 | CameraUI |
isSupported | プロパティ |
permissionStatus | プロパティ |
CameraUI | () | コンストラクター |
public function CameraUI()
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 2.5 |
CameraUI オブジェクトを作成します。
launch | () | メソッド |
public function launch(requestedMediaType:String):void
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 2.5 |
デバイスでデフォルトのカメラアプリケーションを起動します。
このクラスで静止画像またはビデオをキャプチャできます。ビデオキャプチャでは、デバイスの "Quality Low" camcorder プロファイルを使用します。
launch()
メソッドを呼び出すと、デバイスのデフォルトのカメラアプリケーションが呼び出されます。AIR アプリケーションはフォーカスを失い、ユーザーが静止画像をキャプチャするまで、またはビデオのキャプチャが完了するまで待機します。ユーザーが目的のメディアをキャプチャすると、AIR アプリケーションがフォーカスを再取得し、この CameraUI オブジェクトは complete
イベントを送出します。ユーザーが操作をキャンセルすると、この CameraUI オブジェクトは代わりに cancel
イベントを送出します。
注意:ユーザーが画像またはビデオをキャプチャするまでバックグラウンドで待機しているときに、Android オペレーティングシステムによって AIR アプリケーションがシャットダウンされる可能性があります。この場合、ユーザーはアプリケーションを再起動する必要があります。AIR アプリケーションは、前の画像キャプチャに対して media イベントを送出しません。
complete
イベントに対して送出された MediaEvent オブジェクトの data
プロパティを使用して、キャプチャ済みメディアファイルにアクセスできます。プロパティは MediaPromise クラスのインスタンスであり、Loader クラスの loadFilePromise()
メソッドを使用して、アプリケーションに読み込むことができます。デバイスカメラは多様なフォーマットでキャプチャ済みメディアを保存する可能性があります。この点について、ビデオは特に問題があります。キャプチャ済みメディアを AIR で表示できない場合があります。
パラメーター
requestedMediaType:String — キャプチャするメディアオブジェクトのタイプ。このパラメーターの有効な値は MediaType クラスで定義されています。
|
イベント
complete: — メディアオブジェクトがキャプチャされるときに送出されます。
| |
cancel: — ユーザーがメディアオブジェクトをキャプチャせずにネイティブカメラを終了するときに送出されます。
| |
error: — デフォルトのカメラアプリケーションが使用中の場合に送出されます。
| |
error: — AIR アプリケーションがこの関数を呼び出すときにバックグラウンドで実行されている場合に送出されます。
|
例外
PermissionError — アプリケーションには、カメラを使用する権限がありません。
|
関連する API エレメント
requestPermission | () | メソッド |
public function requestPermission():void
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 24.0 |
カメラ UI にアクセスする権限を要求します。
イベント
PermissionStatus: — 要求された権限がユーザーによって付与/拒否されたときに送出されます。
|
cancel | イベント |
flash.events.Event
プロパティ Event.type =
flash.events.Event.CANCEL
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 2.5 |
ユーザーが画像またはビデオを保存せずに Camera UI を閉じると、cancel
イベントが送出されます。
Event.CANCEL
定数は、type
プロパティ(cancel
イベントオブジェクト)の値を定義します。
このイベントには、次のプロパティがあります。
プロパティ | 値 |
---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
target | 操作をキャンセルするオブジェクトへの参照です。 |
complete | イベント |
flash.events.MediaEvent
プロパティ MediaEvent.type =
flash.events.MediaEvent.COMPLETE
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 2.5 |
ユーザーが静止画像またはビデオを Camera UI でキャプチャすると、complete
イベントが送出されます。
complete
MediaEvent の定数です。
type
プロパティ(MediaEvent
イベントオブジェクト)の値を定義します。このイベントには、次のプロパティがあります。
プロパティ | 値 |
---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
data | 使用可能なメディアインスタンスの MediaPromise オブジェクトです。 |
error | イベント |
flash.events.ErrorEvent
プロパティ ErrorEvent.type =
flash.events.ErrorEvent.ERROR
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 2.5 |
デフォルトのカメラを開くことができない場合、error
イベントが送出されます。
type
プロパティ(error
イベントオブジェクト)の値を定義します。
このイベントには、次のプロパティがあります。
プロパティ | 値 |
---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
target | ネットワーク操作エラーが発生したオブジェクトです。 |
text | エラーメッセージとして表示されるテキストです。 |
permissionStatus | イベント |
flash.events.PermissionEvent
プロパティ PermissionEvent.type =
flash.events.PermissionEvent.PERMISSION_STATUS
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 24.0 |
カメラ UI にアクセスする権限をアプリケーションから要求したときに送出されます。status
プロパティの値を確認すると、権限が付与されたか拒否されたかを判定できます。
関連する API エレメント
package { import flash.desktop.NativeApplication; import flash.display.Loader; import flash.display.MovieClip; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.ErrorEvent; import flash.events.Event; import flash.events.IOErrorEvent; import flash.events.MediaEvent; import flash.media.CameraUI; import flash.media.MediaPromise; import flash.media.MediaType; public class CameraUIStillImage extends MovieClip{ private var deviceCameraApp:CameraUI = new CameraUI(); private var imageLoader:Loader; public function CameraUIStillImage() { this.stage.align = StageAlign.TOP_LEFT; this.stage.scaleMode = StageScaleMode.NO_SCALE; if( CameraUI.isSupported ) { trace( "Initializing camera..." ); deviceCameraApp.addEventListener( MediaEvent.COMPLETE, imageCaptured ); deviceCameraApp.addEventListener( Event.CANCEL, captureCanceled ); deviceCameraApp.addEventListener( ErrorEvent.ERROR, cameraError ); deviceCameraApp.launch( MediaType.IMAGE ); } else { trace( "Camera interface is not supported."); } } private function imageCaptured( event:MediaEvent ):void { trace( "Media captured..." ); var imagePromise:MediaPromise = event.data; if( imagePromise.isAsync ) { trace( "Asynchronous media promise." ); imageLoader = new Loader(); imageLoader.contentLoaderInfo.addEventListener( Event.COMPLETE, asyncImageLoaded ); imageLoader.addEventListener( IOErrorEvent.IO_ERROR, cameraError ); imageLoader.loadFilePromise( imagePromise ); } else { trace( "Synchronous media promise." ); imageLoader.loadFilePromise( imagePromise ); showMedia( imageLoader ); } } private function captureCanceled( event:Event ):void { trace( "Media capture canceled." ); NativeApplication.nativeApplication.exit(); } private function asyncImageLoaded( event:Event ):void { trace( "Media loaded in memory." ); showMedia( imageLoader ); } private function showMedia( loader:Loader ):void { this.addChild( loader ); } private function cameraError( error:ErrorEvent ):void { trace( "Error:" + error.text ); NativeApplication.nativeApplication.exit(); } } }
Tue Jun 12 2018, 10:34 AM Z