StageVideo クラス (Flash Player の新しいビデオクラス) のつづき

前回の記事に引き続き、StageVideo クラスの話題です。今回は、StageVideo クラスの属性をいくつか紹介します。

表示領域の設定

StageVideo は、表示オブジェクトではありません。そのため、表示する位置や大きさの設定も、少し独特です。x, y, width, height といった属性は存在しません。

StageVideo の表示位置と表示サイズを指定するには、viewPort 属性を使います。

stageVideo.viewPort = new Rectangle(10, 10, 320, 240);
 

viewPort 属性には、Rectangle オブジェクトを設定します。Rectangle オブジェクトには、表示する位置と大きさをピクセルで指定します。

最初の 2 つの数値が位置の指定になります。それぞれ、横方向と縦方向に、ステージ左上の角から表示位置までの距離を表します。この数値は、-8192 から 8191 の間で指定します。表示領域を、完全にステージ外に移動することもできそうです。

残り 2 つの数値は表示領域の大きさです。こちらも横方向、縦方向の順番です。viewPort の大きさを、表示するステージより大きくすることもできます。

パンとズーム

以下の表示関連の属性を使うと、パンやズームを行うことができます。

videoHeight:int : 再生中のビデオの高さ。単位はピクセル (読み取り専用)
videoWidth:int  : 再生中のビデオの幅。単位はピクセル (読み取り専用)
pan:Point       : 表示する位置の座標を Point で指定。デフォルトは (0.0, 0.0)
zoom:Point      : 表示時の拡大率を Point で指定。デフォルトは (1.0, 1.0)
 

zoom 属性がデフォルト値の場合、指定された viewPort に、ビデオ全体が表示されます。

zoom に指定可能な値の範囲は、(1.0, 1.0) から (16.0, 16.0) です。1 つ目の数値が横方向、2 つ目の数値が縦方向の拡大率になります。例えば、(2.0, 2.0) を指定すると、縦方向も横方向も半分のピクセルしか表示されなくなります。

一方、ビデオの縮小は指定できません。

viewPort 属性で指定した領域の縦横比と、実際のビデオの縦横比が異なる場合、zoom の値がデフォルトだと、viewPort の縦横比に合わせて表示されます。ビデオ側の縦横比で表示したいときは、zoom 属性を使うと、適切な表示に修正することができます。

zoom を使ってビデオを拡大し、ビデオ全体が表示されないとき、pan 属性を設定して、表示位置を指定できます。デフォルトの (0.0, 0.0)では、ビデオの中心が viewPort の中心に位置します。

pan の値として有効なのは、(-1.0, -1.0) から (1.0, 1.0) の間です。数値のの意味は、以下の通りです。

(-1.0, -1.0) : ビデオの左上と viewPort の左上が一致する 
(-1.0, 1.0)  : ビデオの左下と viewPort の左下が一致する
(1.0, -1.0)  : ビデオの右上と viewPort の右上が一致する 
(1.0, 1.0)   : ビデオの右下と viewPort の右下が一致する 
 

-1.0 と 1.0 の中間の値は、上で指定できる領域の間の位置、つまり、中心からそれぞれの角に一致する位置までの間のどこか、を指定するのに使います。

ビデオが拡大されていないと、中心に位置した状態で全ての角も一致した状態になります。そのため、pan は zoom が指定されていないと意味を持ちません。

複数の StageVideo インスタンスがある場合、pan も zoom も全てのインスタンスに有効になるので注意が必要です。別の StageVideo に切り替えるタイミングで、必要に応じて pan および zoom の再設定を行います。

色空間の指定

StageVideo の colorSpaces 属性から、利用できる色空間の情報を取得できます。

var colorSpace:Vector.<String> = stageVideo.colorSpaces;
 

colorSpaces の持つ値は以下のどれかです。

VideoColorSpace.BT601 = "BT.601";
VideoColorSpace.UNKNOWN = "unknown";
VideoColorSpace.BT709 = "BT.709";
VideoColorSpace.SMPTE_240M = "SMPTE-240M";
VideoColorSpace.USFCC:String = "USFCC";
 

ビデオの色空間とハードウェアの色空間が一致しない場合、Flash Player は最も近い組み合わせを選択します。

例えば、H.264 では、ビデオの色空間として "BT.709" が一般的に使われますが、colorSpaces 属性の値が "BT.601" だった場合、ハードウェアは正しい色を使った再生ができません。

このような場合は、Video オブジェクトを使ってソフトウェアで再生を行う、という選択もできます。もちろん、色が合わないことを承知の上で、ハードウェア再生を選択することも可能です。

ハードウェアによっては、利用可能な色空間を Flash Player に通知しないものもあります。その場合、colorSpace は値を持ちません。

 

トラックバック(0)

トラックバックURL: http://cuaoar.jp/mt4/mt-tb.cgi/137

2014年1月

Sun Mon Tue Wed Thu Fri Sat
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
レンタルサーバー

月別 アーカイブ

Powered by Movable Type 4.261