패키지 | 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 | |||
cancel 이벤트는 사용자가 사진 또는 비디오를 저장하지 않고 Camera UI를 닫을 때 전달됩니다. | CameraUI | |||
complete 이벤트는 사용자가 Camera UI에서 스틸 이미지 또는 비디오를 캡처할 때 전달됩니다. | 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 |
장치에서 기본 카메라 응용 프로그램을 시작합니다.
이 클래스를 사용하여 스틸 이미지 또는 비디오를 캡처할 수 있습니다. 비디오 캡처는 장치에서 "품질 낮음" 캠코더 프로파일을 사용합니다.
launch()
메서드가 호출될 때 장치의 기본 카메라 응용 프로그램이 호출됩니다. AIR 응용 프로그램은 포커스를 잃고 사용자가 스틸 이미지를 캡처하거나 비디오 캡처를 마칠 때까지 기다립니다. 사용자가 원하는 미디어를 캡처한 후에는 AIR 응용 프로그램이 포커스를 다시 얻고 이 CameraUI 객체가 complete
이벤트를 전달합니다. 사용자가 작업을 취소하는 경우 이 CameraUI 객체는 cancel
이벤트를 대신 전달합니다.
참고: AIR 응용 프로그램이 백그라운드에서 사용자의 이미지 또는 비디오 캡처를 기다리는 중에 Android 운영 체제에 의해 종료될 수도 있습니다. 그럴 경우에는 사용자가 응용 프로그램을 다시 시작해야 합니다. AIR 응용 프로그램은 이전 이미지 캡처에 대해서는 미디어 이벤트를 전달하지 않습니다.
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 |
cancel
이벤트는 사용자가 사진 또는 비디오를 저장하지 않고 Camera UI를 닫을 때 전달됩니다.
Event.CANCEL
상수는 cancel
이벤트 객체의 type
속성 값을 정의합니다.
이 이벤트에는 다음과 같은 속성이 있습니다.
속성 | 값 |
---|---|
bubbles | false |
cancelable | false . 취소할 기본 비헤이비어가 없습니다. |
currentTarget | 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다. |
target | 작업이 취소된 객체에 대한 참조입니다. |
complete | 이벤트 |
flash.events.MediaEvent
속성 MediaEvent.type =
flash.events.MediaEvent.COMPLETE
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 2.5 |
complete
이벤트는 사용자가 Camera UI에서 스틸 이미지 또는 비디오를 캡처할 때 전달됩니다.
complete
MediaEvent에 대한 상수입니다.
MediaEvent
이벤트 객체의 type
속성 값을 정의합니다. 이 이벤트에는 다음과 같은 속성이 있습니다.
속성 | 값 |
---|---|
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
이벤트는 기본 카메라를 열 수 없을 때 전달됩니다.
error
이벤트 객체의 type
속성 값을 정의합니다.
이 이벤트에는 다음과 같은 속성이 있습니다.
속성 | 값 |
---|---|
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, 03:17 PM Z