패키지 | flash.media |
클래스 | public class Video |
상속 | Video DisplayObject EventDispatcher Object |
하위 클래스 | VideoPlayer |
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Flash Media Server와 함께 사용할 경우 Video 객체를 통해 사용자가 캡처한 실시간 비디오를 서버로 보낸 다음 서버에서 다른 사용자에게 브로드캐스팅할 수 있습니다. 이러한 기능을 사용하여 간단한 비디오 플레이어나 한 서버에서 다른 서버로 멀티포인트 게시 기능을 지원하는 비디오 플레이어 또는 사용자 커뮤니티용 비디오 공유 응용 프로그램과 같은 미디어 응용 프로그램을 개발할 수 있습니다.
Flash Player 9 이상에서는 Sorenson Spark 또는 On2 VP6 코덱으로 인코딩된 FLV 파일의 제작 및 재생을 지원하며 알파 채널도 지원합니다. On2 VP6 비디오 코덱은 이전 기술보다 대역폭을 적게 사용하고 추가 디블로킹 및 디링잉 필터를 제공합니다. 비디오 재생 및 지원되는 형식에 대한 자세한 내용은 flash.net.NetStream 클래스를 참조하십시오.
Flash Player 9.0.115.0 이상은 런타임 렌더링 품질과 성능을 최적화하는 밉매핑을 지원합니다. 비디오 재생에서 Video 객체의 smoothing
속성을 true
로 설정하면 Flash Player는 밉매핑 최적화를 사용합니다.
AIR 25부터는 disableMediaCodec
이라는 app.xml에 Android용 태그가 새로 도입되었습니다. 이 태그를 true
로 설정하면 미디어 코덱이 비활성화되고 비디오가 OpenMax AL을 통해 디코딩됩니다. 그렇지 않으면 미디어 코덱이 활성화됩니다. 이 태그의 값은 기본적으로 false
입니다.
표시 목록의 다른 표시 객체와 마찬가지로 Video 객체의 다양한 속성을 제어할 수 있습니다. 예를 들어 Video 객체의 x
및 y
속성을 사용하여 Stage에서 Video 객체를 이동하거나 height
및 width
속성을 사용하여 크기를 변경할 수 있습니다.
비디오 스트림을 재생하려면 attachCamera()
또는 attachNetStream()
을 사용하여 비디오를 Video 객체에 첨부합니다. 그런 다음 addChild()
를 사용하여 Video 객체를 표시 목록에 추가합니다.
Flash Professional을 사용하는 경우 addChild()
를 사용하여 Video 객체를 추가하는 대신 다음과 같이 스테이지에 Video 객체를 배치할 수도 있습니다.
- [라이브러리] 패널이 보이지 않으면 [윈도우] > [라이브러리]를 선택하여 패널을 표시합니다.
- [라이브러리] 패널 제목 표시줄의 오른쪽에서 [옵션] 메뉴를 클릭하고 새 비디오를 선택하여 포함된 Video 객체를 라이브러리에 추가합니다.
- [비디오 속성] 대화 상자에서 라이브러리에서 사용할 포함된 Video 객체의 이름을 지정하고 [확인]을 클릭합니다.
- Video 객체를 스테이지로 드래그하고 속성 관리자를 사용하여 고유한 인스턴스 이름(예:
my_video
)을 지정합니다. 이때, Video라는 이름은 사용할 수 없습니다.
데스크톱의 AIR 응용 프로그램에서 비디오를 전체 화면 모드로 재생하면 절전 및 화면 보호 기능이 해제됩니다(운영 체제에서 해당 기능을 허용하는 경우).
참고: Video 클래스는 InteractiveObject 클래스의 하위 클래스가 아니므로 마우스 이벤트를 전달할 수 없습니다. 그러나 Video 객체가 속하는 표시 객체 컨테이너의 addEventListener()
메서드는 호출할 수 있습니다.
추가 정보
관련 API 요소
attachNetStream()
flash.media.Camera.getCamera()
flash.net.NetConnection
flash.net.NetStream
flash.display.DisplayObjectContainer.addChild()
flash.display.Stage.addChild()
속성 | 정의 주체 | ||
---|---|---|---|
accessibilityProperties : AccessibilityProperties
이 표시 객체의 현재 액세스 가능성 옵션입니다. | DisplayObject | ||
alpha : Number
지정된 객체의 알파 투명도 값을 나타냅니다. | DisplayObject | ||
blendMode : String
사용할 블렌드 모드를 지정하는 BlendMode 클래스 값입니다. | DisplayObject | ||
blendShader : Shader [쓰기 전용]
전경 및 배경을 블렌딩하는 데 사용되는 셰이더를 설정합니다. | DisplayObject | ||
cacheAsBitmap : Boolean
true로 설정된 경우 Flash 런타임은 표시 객체의 내부 비트맵 표현을 캐시합니다. | DisplayObject | ||
cacheAsBitmapMatrix : Matrix
null이 아닌 경우 이 Matrix 객체는 cacheAsBitmap이 true로 설정될 때 표시 객체가 렌더링되는 방법을 정의합니다. | DisplayObject | ||
constructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다. | Object | ||
deblocking : int
사후 처리의 일부로 디코딩된 비디오에 적용되는 필터 유형을 나타냅니다. | Video | ||
filters : Array
현재 표시 객체와 연관된 각 필터 객체가 들어 있는 인덱싱된 배열입니다. | DisplayObject | ||
height : Number
표시 객체의 높이를 픽셀 단위로 나타냅니다. | DisplayObject | ||
loaderInfo : LoaderInfo [읽기 전용]
이 표시 객체가 속한 파일의 로딩 정보가 포함된 LoaderInfo 객체를 반환합니다. | DisplayObject | ||
mask : DisplayObject
호출하는 표시 객체는 지정된 mask 객체에 의해 마스크 처리됩니다. | DisplayObject | ||
metaData : Object
PlaceObject4 태그를 통해 SWF 파일에 해당 DisplayObject의 인스턴스와 함께 메타데이터가 저장된 경우 DisplayObject 인스턴스의 메타데이터 객체를 가져옵니다. | DisplayObject | ||
mouseX : Number [읽기 전용]
마우스 또는 사용자 입력 장치 위치의 x 좌표를 픽셀로 나타냅니다. | DisplayObject | ||
mouseY : Number [읽기 전용]
마우스 또는 사용자 입력 장치 위치의 y 좌표를 픽셀로 나타냅니다. | DisplayObject | ||
name : String
DisplayObject의 인스턴스 이름을 나타냅니다. | DisplayObject | ||
opaqueBackground : Object
표시 객체를 특정 배경색으로 불투명하게 처리할지 여부를 지정합니다. | DisplayObject | ||
parent : DisplayObjectContainer [읽기 전용]
이 표시 객체가 포함된 DisplayObjectContainer 객체를 나타냅니다. | DisplayObject | ||
root : DisplayObject [읽기 전용]
로드된 SWF 파일에 있는 표시 객체의 경우, 해당 SWF 파일이 나타내는 표시 목록의 트리 구조 부분에서 맨 위에 위치하는 표시 객체가 루트 속성이 됩니다. | DisplayObject | ||
rotation : Number
DisplayObject 인스턴스가 원점으로부터 회전한 각도입니다. | DisplayObject | ||
rotationX : Number
DisplayObject 인스턴스가 3D parent 컨테이너를 기준으로 원점으로부터 x축 회전한 각도를 나타냅니다. | DisplayObject | ||
rotationY : Number
DisplayObject 인스턴스가 3D parent 컨테이너를 기준으로 원점으로부터 y축 회전한 각도를 나타냅니다. | DisplayObject | ||
rotationZ : Number
DisplayObject 인스턴스가 3D parent 컨테이너를 기준으로 원점으로부터 z축 회전한 각도를 나타냅니다. | DisplayObject | ||
scale9Grid : Rectangle
현재 적용 중인 크기 조절 격자입니다. | DisplayObject | ||
scaleX : Number
등록 포인트에서 적용된 객체의 가로 크기(백분율)를 나타냅니다. | DisplayObject | ||
scaleY : Number
객체의 등록 포인트에서 적용된 객체의 세로 크기(백분율)를 나타냅니다. | DisplayObject | ||
scaleZ : Number
객체의 등록 포인트에서 적용된 객체의 깊이 크기(백분율)를 나타냅니다. | DisplayObject | ||
scrollRect : Rectangle
표시 객체의 스크롤 사각형 경계입니다. | DisplayObject | ||
smoothing : Boolean
비디오의 크기를 조절할 때 매끄럽게 할 것인지 여부를 지정합니다. | Video | ||
stage : Stage [읽기 전용]
표시 객체의 Stage입니다. | DisplayObject | ||
transform : flash.geom:Transform
표시 객체의 행렬, 색상 변환 및 픽셀 경계와 관련된 속성을 가진 객체입니다. | DisplayObject | ||
videoHeight : int [읽기 전용]
비디오 스트림의 높이를 픽셀 단위로 지정하는 정수입니다. | Video | ||
videoWidth : int [읽기 전용]
비디오 스트림의 너비를 픽셀 단위로 지정하는 정수입니다. | Video | ||
visible : Boolean
표시 객체가 표시되는지 여부를 나타냅니다. | DisplayObject | ||
width : Number
표시 객체의 폭을 픽셀 단위로 나타냅니다. | DisplayObject | ||
x : Number
부모 DisplayObjectContainer의 로컬 좌표를 기준으로 DisplayObject 인스턴스의 x 좌표를 나타냅니다. | DisplayObject | ||
y : Number
부모 DisplayObjectContainer의 로컬 좌표를 기준으로 DisplayObject 인스턴스의 y 좌표를 나타냅니다. | DisplayObject | ||
z : Number
3D parent 컨테이너를 기준으로 DisplayObject 인스턴스의 z축에 있는 z 좌표 위치를 나타냅니다. | DisplayObject |
메서드 | 정의 주체 | ||
---|---|---|---|
새 Video 인스턴스를 만듭니다. | Video | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
리스너에서 이벤트 알림을 받을 수 있도록 EventDispatcher 객체에 이벤트 리스너 객체를 등록합니다. | EventDispatcher | ||
응용 프로그램에서 Video 객체의 경계선 안에 표시할 카메라의 비디오 스트림을 지정합니다. | Video | ||
응용 프로그램에서 Video 객체의 경계 내에 표시할 비디오 스트림을 지정합니다. | Video | ||
비디오 스트림이 아닌 Video 객체에 현재 표시된 이미지를 지웁니다. | Video | ||
이벤트를 이벤트 흐름으로 전달합니다. | EventDispatcher | ||
targetCoordinateSpace 객체의 좌표계를 기준으로 표시 객체의 영역을 정의하는 사각형을 반환합니다. | DisplayObject | ||
대상 좌표 공간 매개 변수에 의해 정의되는 좌표계를 기준으로 모양의 획을 제외하고 표시 객체의 경계를 정의하는 사각형을 반환합니다. | DisplayObject | ||
Point 객체를 Stage 전역 좌표에서 표시 객체의 로컬 좌표로 변환합니다. | DisplayObject | ||
Stage(전역) 좌표의 2차원 점을 3차원 표시 객체(로컬) 좌표로 변환합니다. | DisplayObject | ||
EventDispatcher 객체에 특정 유형의 이벤트에 대한 리스너가 등록되어 있는지 여부를 확인합니다. | EventDispatcher | ||
지정된 속성이 객체에 정의되어 있는지 여부를 나타냅니다. | Object | ||
표시 객체의 경계 상자를 평가하여 obj 표시 객체의 경계 상자와 겹치거나 교차하는지 확인합니다. | DisplayObject | ||
표시 객체를 평가하여 x 및 y 매개 변수에 의해 지정된 점과 겹치거나 교차하는지 확인합니다. | DisplayObject | ||
Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다. | Object | ||
3차원 표시 객체의 로컬 좌표에 있는 3차원 점을 Stage 전역 좌표의 2차원 점으로 변환합니다. | DisplayObject | ||
Point 객체를 표시 객체의 로컬 좌표에서 Stage 전역 좌표로 변환합니다. | DisplayObject | ||
지정된 속성이 존재하고 열거 가능한지 여부를 나타냅니다. | Object | ||
EventDispatcher 객체에서 리스너를 제거합니다. | EventDispatcher | ||
루프 작업에서 동적 속성을 사용할 수 있는지 여부를 설정합니다. | Object | ||
로캘별 규칙에 따라 서식이 지정된 이 객체의 문자열 표현을 반환합니다. | Object | ||
지정된 객체의 문자열 표현을 반환합니다. | Object | ||
지정된 객체의 프리미티브 값을 반환합니다. | Object | ||
이 EventDispatcher 객체 또는 조상 객체에 지정한 이벤트 유형에 대한 이벤트 리스너가 등록되어 있는지 여부를 확인합니다. | EventDispatcher |
deblocking | 속성 |
deblocking:int
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
사후 처리의 일부로 디코딩된 비디오에 적용되는 필터 유형을 나타냅니다. 기본값은 0이며, 이 값에서는 비디오 압축기가 디블로킹 필터를 필요한 만큼 적용합니다.
비디오 압축으로 인해 원치 않은 인위적인 요소가 나타날 수 있습니다. deblocking
속성을 사용하여 블로킹을 줄여 주는 필터를 설정할 수 있으며, On2 코덱으로 압축된 비디오의 경우에는 링잉을 줄일 수 있습니다.
블로킹이란 각 비디오 프레임을 구성하는 블록 경계선 사이에서 눈에 띄는 결함을 가리킵니다. 링잉은 비디오 이미지 내의 요소들 주변에서 나타나는 왜곡된 가장자리를 말합니다.
두 개의 디블로킹 필터인, Sorenson 코덱의 필터와 On2 VP6 코덱의 필터가 있습니다. 또한 On2 VP6 코덱을 사용할 때 디링잉 필터를 사용할 수 있습니다. 필터를 설정하려면 다음 값 중 하나를 사용합니다.
- 0 - 비디오 압축기가 디블로킹 필터를 필요한 만큼 적용하도록 합니다.
- 1 - 디블로킹 필터를 사용하지 않습니다.
- 2 - Sorenson 디블로킹 필터를 사용합니다.
- 3 - On2 비디오에 한해 On2 디블로킹 필터만 사용하고 디링잉 필터는 사용하지 않습니다.
- 4 - On2 비디오에 한해 On2 디블로킹 및 디링잉 필터를 사용합니다.
- 5 - On2 비디오에 한해 On2 디블로킹 및 고성능 On2 디링잉 필터를 사용합니다.
Sorenson 코덱을 사용할 때 비디오에 대해 2보다 큰 값을 선택하면 Sorenson 디코더는 기본값 2를 사용합니다.
디블로킹 필터는 전반적인 재생 성능에 영향을 주며, 보통 고대역폭 비디오에는 사용할 필요가 없습니다. 시스템 성능이 부족한 경우에는 디블로킹 필터를 활성화한 상태에서 비디오를 재생하기가 어려울 수 있습니다.
구현
public function get deblocking():int
public function set deblocking(value:int):void
smoothing | 속성 |
smoothing:Boolean
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
비디오의 크기를 조절할 때 매끄럽게 할 것인지 여부를 지정합니다. 매끄럽게 하는 기능이 동작하려면 런타임이 고품질 모드(기본값)여야 합니다. 기본값은 false
(매끄럽게 하지 않음)입니다.
Flash Player 9.0.115.0 이상의 버전을 사용하여 비디오를 재생할 경우 밉매핑 이미지 최적화를 활용하려면 이 속성을 true
로 설정합니다.
구현
public function get smoothing():Boolean
public function set smoothing(value:Boolean):void
videoHeight | 속성 |
videoHeight:int
[읽기 전용] 언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
비디오 스트림의 높이를 픽셀 단위로 지정하는 정수입니다. 라이브 스트림의 경우, 이 값은 비디오 스트림을 캡처하는 Camera 객체의 Camera.height
속성과 동일합니다. 녹화된 비디오 파일의 경우 이 값은 비디오의 높이입니다. NetStream.Video.DimensionChange 이벤트는 녹화된 비디오에서 이 값이 변경되는 경우에 전달됩니다.
Stage에 놓인 Video 객체의 실제 크기와 관계없이 캡처된 크기와 동일하게 비디오를 표시할 때 이 속성을 사용할 수 있습니다.
구현
public function get videoHeight():int
관련 API 요소
videoWidth | 속성 |
videoWidth:int
[읽기 전용] 언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
비디오 스트림의 너비를 픽셀 단위로 지정하는 정수입니다. 라이브 스트림의 경우, 이 값은 비디오 스트림을 캡처하는 Camera 객체의 Camera.width
속성과 동일합니다. 녹화된 비디오 파일의 경우 이 값은 비디오의 폭입니다. NetStream.Video.DimensionChange 이벤트는 녹화된 비디오에서 이 값이 변경되는 경우에 전달됩니다.
Stage에 놓인 Video 객체의 실제 크기와 관계없이 캡처된 크기와 동일하게 비디오를 표시할 때 이 속성을 사용할 수 있습니다.
구현
public function get videoWidth():int
관련 API 요소
Video | () | 생성자 |
public function Video(width:int = 320, height:int = 240)
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9 |
새 Video 인스턴스를 만듭니다. width
및 height
매개 변수의 값을 제공하지 않으면 기본값이 사용됩니다. 초기 구성 이후에 Video.width
및 Video.height
를 사용하여 Video 객체의 폭과 높이 속성을 설정할 수도 있습니다. Video 객체를 새로 만들 때 폭 또는 높이 값으로 0을 사용할 수 없습니다. 0을 전달하면 기본값이 적용됩니다.
Video를 만든 다음 DisplayObjectContainer.addChild()
또는 DisplayObjectContainer.addChildAt()
메서드를 호출하여 Video 객체를 부모 DisplayObjectContainer 객체에 추가합니다.
width:int (default = 320 ) — 비디오의 너비(픽셀)입니다.
| |
height:int (default = 240 ) — 비디오의 높이(픽셀)입니다.
|
예제 ( 예제 사용 방법 )
var MyVideo:Video = new Video(); addChild(MyVideo); var MyNC:NetConnection = new NetConnection(); MyNC.connect(null); var MyNS:NetStream = new NetStream(MyNC); MyNS.play("http://www.helpexamples.com/flash/video/clouds.flv"); MyVideo.attachNetStream(MyNS); //the clouds.flv video has metadata we're not using, so create //an error handler to ignore the message generated by the runtime //about the metadata MyNS.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler); function asyncErrorHandler(event:AsyncErrorEvent):void { //ignore metadata error message }
attachCamera | () | 메서드 |
public function attachCamera(camera:Camera):void
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9 |
응용 프로그램에서 Video 객체의 경계선 안에 표시할 카메라의 비디오 스트림을 지정합니다.
이 메서드를 사용하여 사용자가 캡처한 실시간 비디오를 Video 객체에 연결합니다. 실시간 비디오를 캡처하는 동일한 컴퓨터 또는 장치에서 로컬로 실시간 비디오를 재생하거나 Flash Media Server로 실시간 비디오를 보내고 Flash Media Server 서버를 사용하여 다른 사용자에게 스트리밍할 수 있습니다.
참고: iOS AIR 응용 프로그램에서는 응용 프로그램이 GPU 렌더링 모드를 사용하면 카메라 비디오를 표시할 수 없습니다.
매개 변수
camera:Camera — 비디오 데이터를 캡처하는 Camera 객체입니다. Video 객체와의 연결을 끊으려면 null 을 전달합니다.
|
관련 API 요소
예제
예제 사용 방법
이 메서드를 사용하는 방법은 Camera.getCamera() 메서드를 참조하십시오.
attachNetStream | () | 메서드 |
public function attachNetStream(netStream:NetStream):void
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
응용 프로그램에서 Video 객체의 경계 내에 표시할 비디오 스트림을 지정합니다. 비디오 스트림은 NetStream.play()
로 재생되는 비디오 파일, Camera 객체 또는 null
입니다. 비디오 파일을 사용하는 경우 로컬 파일 시스템이나 Flash Media Server에 저장할 수 있습니다. netStream
인수의 값이 null
이면 Video 객체에서 더 이상 비디오가 재생되지 않습니다.
비디오 파일에 오디오만 있으면 이 메서드를 사용할 필요가 없습니다. 비디오 파일의 오디오 부분은 NetStream.play()
를 호출할 때 자동으로 재생됩니다. 비디오 파일과 연관된 오디오를 제어하려면 비디오 파일을 재생하는 NetStream 객체의 soundTransform
속성을 사용합니다.
매개 변수
netStream:NetStream — NetStream 객체입니다. Video 객체와의 연결을 끊으려면 null 을 전달합니다.
|
관련 API 요소
clear | () | 메서드 |
public function clear():void
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
비디오 스트림이 아닌 Video 객체에 현재 표시된 이미지를 지웁니다. 이 메서드는 현재 이미지를 처리하는 데 유용합니다. 예를 들어 Video 객체를 숨기지 않고 마지막 이미지 또는 표시 대기 정보를 지울 수 있습니다.
관련 API 요소
videoURL
로 전달된 변수와 일치하는 이름 및 위치를 가지는 FLV 파일이 필요합니다. 이 경우에는 SWF 파일과 같은 디렉토리에 있는 Video.flv라는 FLV 파일입니다.
이 예제에서는 Video 및 NetStream 객체를 만들고 Video.attachNetStream()
및 NetStream.play()
를 호출하는 코드가 핸들러 함수 안에 배치됩니다. 핸들러는 NetConnection 객체에 대한 연결에 성공해야만 호출됩니다. 연결은 netStatus
이벤트가 성공을 나타내는 code
속성을 갖는 정보 객체를 반환하면 성공합니다. 연결에 성공할 때까지 기다렸다가 NetStream.play()
를 호출하는 것이 좋습니다.
package { import flash.display.Sprite; import flash.events.*; import flash.media.Video; import flash.net.NetConnection; import flash.net.NetStream; public class VideoExample extends Sprite { private var videoURL:String = "Video.flv"; private var connection:NetConnection; private var stream:NetStream; public function VideoExample() { connection = new NetConnection(); connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); connection.connect(null); } private function netStatusHandler(event:NetStatusEvent):void { switch (event.info.code) { case "NetConnection.Connect.Success": connectStream(); break; case "NetStream.Play.StreamNotFound": trace("Unable to locate video: " + videoURL); break; } } private function connectStream():void { stream = new NetStream(connection); stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler); var video:Video = new Video(); video.attachNetStream(stream); stream.play(videoURL); addChild(video); } private function securityErrorHandler(event:SecurityErrorEvent):void { trace("securityErrorHandler: " + event); } private function asyncErrorHandler(event:AsyncErrorEvent):void { // ignore AsyncErrorEvent events. } } }
Tue Jun 12 2018, 03:17 PM Z