パッケージ | flash.media |
クラス | public class StageVideo |
継承 | StageVideo EventDispatcher Object |
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 2.5, Flash Player 10.2 |
AIR プロファイルサポート:AIR 3 では、AIR for TV デバイスのすべてと一部のモバイルデバイスでこの機能がサポートされます。AIR 3 for iOS は、ハードウェアデコード機能付き H.264 ビデオ対応 StageVideo オブジェクトを使用します。NetStream 機能のサポートには制限があります。また、AIR 3 for iOS は StageVideo オブジェクトを通じて、On2 および Sorenson コーデックもサポートしています。このサポートではハードウェアデコードは使用されません。また、NetStream 機能は制限されません。AIR 2.5 では、この機能は AIR for TV デバイスのみでサポートされています。さらに、AIR 2.5 for TV 内のこの機能用の ActionScript は、AIR 3 または Flash Player 10.2 用の ActionScript とは異なります。相違点については、ActionScript の説明を参照してください。複数のプロファイル間での API サポートについて詳しくは、AIR プロファイルのサポートを参照してください。AIR デスクトップ または extendedDesktop プロファイルでは、StageVideo クラスはサポートされません。
StageVideo オブジェクトによるビデオは、常に、どの Flash 表示リストオブジェクトよりも背面にある長方形の領域に表示されます。これにより StageVideo オブジェクトでは、ハードウェアアクセラレーションを利用しつつ、ビデオの最も一般的な表示方法(ビデオコントロールがオーバーレイ表示される長方形の表示領域)をサポートすることができます。
Video オブジェクトではなく StageVideo オブジェクトを使用することには次のようなメリットがあります。
- ハードウェアアクセラレーションを使用することでビデオ表示のパフォーマンスが向上します。
- CPU 占有率が低減されます。
- ビデオコントロールなどを StageVideo オブジェクトの前面に表示できるので、より柔軟でクリエイティブなコンテンツ開発ができます。
ビデオの表示がデバイスのハードウェアで実行されるので、StageVideo オブジェクトには、Video オブジェクトと比較して次のような制約があります。
- 各 SWF ファイルについて、同時にビデオを表示できる StageVideo オブジェクトの数は、Flash Player により 4 に制限されています。ただし、デバイスのハードウェアリソースによっては、実際のオブジェクト数がより少ない数に制限される場合があります。AIR for TV デバイスでは、一度に 1 つの StageVideo オブジェクトでのみビデオを再生できます。
- ビデオのタイミングが、ランタイムにより表示される Flash コンテンツのタイミングと同期しません。
- ビデオ表示領域の形は長方形のみです。楕円形や不規則な形などの複雑な領域に表示することはできません。
- ビデオを回転することはできません。
- ビデオをビットマップキャッシュしたり、BitmapData を使用してビデオにアクセスすることはできません。
- ビデオにフィルターを適用することはできません。
- ビデオにカラー変換を適用することはできません。
- ビデオにアルファ値を適用することはできません。
- ビデオの前面にある表示オブジェクトに適用したブレンドモードは、ビデオに対しては適用されません。
- ビデオを配置できる位置はフルピクセル境界のみです。
- 指定されたデバイスハードウェアにおいて、レンダリングは最も適した手段ではありますが、デバイス間で完全なピクセル整合性が保たれているわけではありません。ドライバーやプラットフォームにより、些細な不整合が発生する場合があります。
- デバイスの中には、必要なすべてのカラースペースをサポートしていないものもあります。例えば、H.264 標準の BT.709 をサポートしていないデバイスもいくつかあります。このような場合には、表示速度を速めるため、BT.601 を使用することができます。
- ステージビデオを
normal
、opaque
、transparent
などの WMODE 設定と共に使用することはできません。フルスクリーンモードにない場合、ステージビデオでサポートされているのはWMODE=direct
のみです。WMODE は、Safari 4 またはそれ以降、IE 9 またはそれ以降、AIR for TV では何の影響もありません。 - AIR for Android アプリケーションで StageVideo を使用する場合、アプリケーション記述子で、
colorDepth
を 32bit に設定します。色深度 16 bit の StageVideo の使用はサポートされていません。 - Android の場合、StageVideo は Android 3(Honeycomb)以上で動作するデバイスでのみサポートされています。できるだけ多くの Android デバイスでアプリケーションが動作するように、StageVideo を使用できない環境では Video オブジェクトを使用して表示するようなロジックを必ず用意してください。
StageVideo オブジェクトを使用してビデオを再生する手順の要約を次に示します。
- Stage.stageVideos ベクターが変更されたタイミングを知るために、StageVideoAvailabilityEvent.STAGE_VIDEO_AVAILABILITY イベントをリッスンします(AIR 2.5 for TV ではサポートされません)。
- StageVideoAvailabilityEvent.STAGE_VIDEO_AVAILABILITY イベントによりステージビデオが使用可能であることがレポートされると、そのイベントハンドラー内の
Stage.stageVideos
ベクターオブジェクトを使用して StageVideo オブジェクトにアクセスします。AIR 2.5 for TV では、最初の SWF フレームがレンダリングされた後、Stage.stageVideos
にアクセスします。注意:StageVideo オブジェクトを作成することはできません。 -
StageVideo.attachNetStream()
を使用して NetStream オブジェクトを添付します。 -
NetStream.play()
を使用してビデオを再生します。 - ビデオ再生のステータスを知るために、StageVideo オブジェクト上の
StageVideoEvent.RENDER_STATE
イベントをリッスンします。また、このイベントの受領は、ビデオの width および height プロパティが初期化または変更されたことも示します。 - Video オブジェクト上の
VideoEvent.RENDER_STATE
イベントをリッスンします。このイベントは、StageVideoEvent.RENDER_STATE と同じステータスを提供します。したがって、このイベントを使用して GPU アクセラレーションが使用可能かどうかを判断することができます。また、このイベントの受領は、ビデオの width および height プロパティが初期化または変更されたことも示します(AIR 2.5 for TV ではサポートされません)。
ビデオを再生できないことが StageVideoEvent.RENDER_STATE
イベントによって示された場合は、StageVideo オブジェクトではなく Video オブジェクトを使用する従来の方法に切り替えることもできます。このイベントは、ビデオが NetStream オブジェクトにアタッチされ、再生された後に送出されます。また、プラットフォームによっては、再生ステータスに何らかの変化が生じるたびにこのイベントが送出されることもあります。StageVideoEvent.RENDER_STATE
イベントを使用して、アプリケーションのビデオが確実に再生されるよう、または再生されないようにします。
ビデオの実行がステージビデオをサポートしていない WMODE からフルスクリーンモードに移行すると、ステージビデオが使用できるようになります。同様に、ユーザーがフルスクリーンモードを終了すると、ステージビデオは使用できなくなります。このような場合、Stage.stageVideos ベクターが変更されます。この変更の通知を取得するには、StageVideoAvailabilityEvent.STAGE_VIDEO_AVAILABITY イベントをリッスンします。注意:この通知は、AIR 2.5 for TV では使用できません。
詳細
関連する API エレメント
flash.events.StageVideoAvailabilityEvent
flash.events.VideoEvent
flash.display.Stage.stageVideos
flash.media.Video
flash.net.NetStream
プロパティ | 定義元 | ||
---|---|---|---|
colorSpaces : Vector.<String> [読み取り専用]
そのビデオ画面に使用できるカラースペースの名前のリストを返します。 | StageVideo | ||
constructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。 | Object | ||
depth : int
その StageVideo オブジェクトが配置された深さレベルを、他の StageVideo オブジェクトとの相対値で示します。 | StageVideo | ||
pan : Point
Point オブジェクトの座標として指定される、ビデオ表示のパン設定です。 | StageVideo | ||
videoHeight : int [読み取り専用]
ビデオストリームの高さをピクセル単位で指定する整数です。 | StageVideo | ||
videoWidth : int [読み取り専用]
ビデオストリームの幅をピクセル単位で指定する整数です。 | StageVideo | ||
viewPort : Rectangle
ビデオ表示領域の絶対位置とサイズ(ピクセル単位)です。 | StageVideo | ||
zoom : Point
Point オブジェクトとして指定される、ビデオのズーム設定です。 | StageVideo |
メソッド | 定義元 | ||
---|---|---|---|
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。 | EventDispatcher | ||
アプリケーション内の StageVideo オブジェクトの境界内に表示するカメラからのビデオストリームを指定して、レンダリングに GPU を利用します。 | StageVideo | ||
アプリケーション内の StageVideo オブジェクトの境界内に表示するビデオストリームを指定します。 | StageVideo | ||
イベントをイベントフローに送出します。 | EventDispatcher | ||
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。 | EventDispatcher | ||
オブジェクトに指定されたプロパティが定義されているかどうかを示します。 | Object | ||
Object クラスのインスタンスが、パラメーターとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。 | Object | ||
指定されたプロパティが存在し、列挙できるかどうかを示します。 | Object | ||
EventDispatcher オブジェクトからリスナーを削除します。 | EventDispatcher | ||
ループ処理に対するダイナミックプロパティの可用性を設定します。 | Object | ||
ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。 | Object | ||
指定されたオブジェクトのストリング表現を返します。 | Object | ||
指定されたオブジェクトのプリミティブな値を返します。 | Object | ||
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。 | EventDispatcher |
イベント | 概要 | 定義元 | ||
---|---|---|---|---|
[ブロードキャストイベント] Flash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。 | EventDispatcher | |||
[ブロードキャストイベント] Flash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを失って、非アクティブになったときに送出されます。 | EventDispatcher | |||
StageVideo オブジェクトのレンダリング状態が変化したときに、StageVideo オブジェクトによって送出されます。 | StageVideo |
colorSpaces | プロパティ |
colorSpaces:Vector.<String>
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 2.5, Flash Player 10.2 |
そのビデオ画面に使用できるカラースペースの名前のリストを返します。普通、このリストには「BT.601」と「BT.709」が含まれていますが、構成によっては「BT.601」のみサポートされていることがあります。その場合、ビデオが正しいカラースペースでレンダリングされない可能性があります。
注意:AIR for TV デバイスでは、「BT.601」の値はソフトウェア再生を、「BT.709」の値はハードウェア再生を示します。
実装
public function get colorSpaces():Vector.<String>
depth | プロパティ |
depth:int
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 2.5, Flash Player 10.2 |
その StageVideo オブジェクトが配置された深さレベルを、他の StageVideo オブジェクトとの相対値で示します。
StageVideo オブジェクトは常にステージ上の他のオブジェクトの背面に表示されます。プラットフォームが複数の StageVideo オブジェクトをサポートしている場合、depth
プロパティは StageVideo オブジェクトの深さレベルを表します。最背面にある StageVideo オブジェクトの depth
プロパティが最も小さい値になります。複数の StageVideo オブジェクトに同じ深さが設定されている場合、それらのオブジェクトの相対的な順序は、stageVideos
Vector オブジェクト内に配置されている順序によって決まります。
注意:AIR for TV デバイスでサポートされる StageVideo オブジェクトの数は 1 つだけです。したがって、このプロパティは AIR for TV デバイスでは使用できません。
実装
public function get depth():int
public function set depth(value:int):void
関連する API エレメント
pan | プロパティ |
pan:Point
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 2.5, Flash Player 10.2 |
Point オブジェクトの座標として指定される、ビデオ表示のパン設定です。
デフォルトでは、pan
の値は (0,0)
です。このデフォルトの状態では、StageVideo.viewPort
で指定される長方形の中央にビデオが表示されます。
pan
値は、zoom
プロパティにデフォルトの (1.0, 1.0)
以外の値が設定されている場合にのみ意味を持ちます。デフォルトの zoom
値を使用して StageVideo.viewPort
長方形内にビデオを表示すると、ビデオのサイズは、その長方形にちょうど合うように調整されます。したがって、ビデオの画像全体が表示されます。ズーム値を指定するとビデオの画像全体は表示されません。その場合に pan
値を設定すると、どの部分を StageVideo.viewPort
の長方形領域に表示するかを指定できます。
pan
プロパティに設定できる有効な値の範囲は、(-1.0, -1.0)
~ (1.0, 1.0)
です。設定値には次のような意味があります。
-
pan
値が(-1.0, -1.0)
の場合は、ビデオの左上隅ピクセルがStageVideo.viewPort
領域の左上隅に表示されます。 -
pan
値が(1.0, 1.0)
の場合は、ビデオの右下隅ピクセルがStageVideo.viewPort
領域の右下隅に表示されます。 -
pan
値が(1.0, -1.0)
の場合は、ビデオの右上隅ピクセルがStageVideo.viewPort
領域の右上隅に表示されます。 -
pan
値が(-1.0, 1.0)
の場合は、ビデオの左下隅ピクセルがStageVideo.viewPort
領域の左下隅に表示されます。
-1.0 と 1.0 の間の値を指定すると、拡大率に応じて表示がパンされます。
pan
プロパティに有効範囲外の値を設定すると、RangeError
例外がスローされます。値はその前に設定されていた有効な値に戻されます。
また、StageVideo オブジェクトの使用時には Stage.stageVideos
Vector オブジェクトの要素を StageVideo 変数に代入して使用しているという点も考慮する必要があります。StageVideo 変数の pan
プロパティを設定すると、該当する Stage.stageVideos
Vector オブジェクトの要素も変更されます。後で、別の StageVideo 変数に同じ要素を代入してビデオを再生する場合には、pan
プロパティを設定し直す必要があります。
実装
public function get pan():Point
public function set pan(value:Point):void
例外
RangeError — Point 値が無効です。
|
関連する API エレメント
videoHeight | プロパティ |
videoHeight:int
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 2.5, Flash Player 10.2 |
ビデオストリームの高さをピクセル単位で指定する整数です。
このプロパティは、StageVideo.viewPort
の長方形領域のサイズとは関係なく、キャプチャしたのと同じ高さでユーザーに対してビデオを表示する場合などに使用します。
実装
public function get videoHeight():int
videoWidth | プロパティ |
videoWidth:int
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 2.5, Flash Player 10.2 |
ビデオストリームの幅をピクセル単位で指定する整数です。
このプロパティは、StageVideo.viewPort
の長方形領域のサイズとは関係なく、キャプチャしたのと同じ幅でユーザーに対してビデオを表示する場合などに使用します。
実装
public function get videoWidth():int
viewPort | プロパティ |
viewPort:Rectangle
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 2.5, Flash Player 10.2 |
ビデオ表示領域の絶対位置とサイズ(ピクセル単位)です。
ビデオの位置は、ステージの左上隅を基準とする相対位置です。
viewPort
Rectangle オブジェクトの x
および y
プロパティに設定できる値の有効範囲は -8192 ~ 8191 です。つまり、ビデオの一部または全体をステージの外に出すこともできます。また、viewPort
プロパティの width
および height
プロパティをステージよりも大きくすれば、ビデオのサイズをステージよりも大きくすることができます。
実装
public function get viewPort():Rectangle
public function set viewPort(value:Rectangle):void
例外
RangeError — Rectangle 値が無効です。
|
zoom | プロパティ |
zoom:Point
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 2.5, Flash Player 10.2 |
Point オブジェクトとして指定される、ビデオのズーム設定です。
ズームの Point オブジェクトが拡大倍率を表します。デフォルトでは、zoom
の値は (1.0, 1.0)
です。このデフォルトの状態では、StageVideo.viewPort
長方形領域にビデオの画像全体が表示されます。
zoom
プロパティに設定できる有効な値の範囲は、(1.0, 1.0)
~ (8.0, 8.0)
です。ズームの Point オブジェクトの x
プロパティによって水平方向ピクセルのズーム値を指定し、y プロパティによって垂直方向ピクセルのズーム値を指定します。
例えば、zoom
値が (2.0, 2.0)
の場合は、水平ピクセルの半数と垂直ピクセルの半数だけが StageVideo.viewPort
の長方形領域内に表示されます。StageVideo.viewPort
領域全体がビデオで占められますが、ビデオの半分だけが見える 2 倍ズーム表示になります。同じように、zoom
値が (8.0, 8.0)
の場合は、水平ピクセルの 1/8 と垂直ピクセルの 1/8 だけが StageVideo.viewPort
の長方形領域内に表示され、最大倍率である 8 倍ズーム表示になります。
zoom
プロパティを設定する場合は、ビデオ内の適切な部分が StageVideo.viewPort
領域内に表示されるように pan
プロパティを設定してください。
ここで、zoom
Point オブジェクトの x
および y
プロパティに異なる値を設定することが有用な場合の例を挙げます。デフォルトの zoom
値を使用して StageVideo.viewPort
長方形内にビデオを表示すると、ビデオのサイズは、その長方形にちょうど合うように調整されます。ビデオの長方形が StageVideo.viewPort
の長方形に合わせて拡大されないと、ビデオの表示がゆがむ場合があります。つまり、ビデオのアスペクト比が StageVideo.viewPort
と異なる場合には、ビデオの表示がゆがむ可能性があります。例えば、StageVideo.viewPort
プロパティに正方形のサイズを指定して、幅と高さが異なるビデオを再生するような場合が該当します。こうした状況で表示のゆがみを解消するには、zoom
Point オブジェクトの x
および y
プロパティに異なる値を設定します。さらに、ビデオ内の適切な部分が StageVideo.viewPort
領域内に表示されるように pan
プロパティを設定します。
zoom
プロパティに有効範囲外の値を設定すると、RangeError
例外がスローされます。値はその前に設定されていた有効な値に戻されます。
また、StageVideo オブジェクトの使用時には Stage.stageVideos
Vector オブジェクトの要素を StageVideo 変数に代入して使用しているという点も考慮する必要があります。StageVideo 変数の zoom
プロパティを設定すると、該当する Stage.stageVideos
Vector オブジェクトの要素も変更されます。後で、別の StageVideo 変数に同じ要素を代入してビデオを再生する場合には、zoom
プロパティを設定し直す必要があります。
実装
public function get zoom():Point
public function set zoom(value:Point):void
例外
RangeError — Point 値が無効です。
|
関連する API エレメント
attachCamera | () | メソッド |
public function attachCamera(theCamera:Camera):void
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 11.4, AIR 3.4 |
アプリケーション内の StageVideo オブジェクトの境界内に表示するカメラからのビデオストリームを指定して、レンダリングに GPU を利用します。
注意:カメラの StageVideは Android ではサポートされません。
このメソッドは、ユーザーがキャプチャしたライブビデオを StageVideo オブジェクトに添付するために使用します。StageVideo オブジェクトへの接続を閉じるには、null
を渡します。
パラメーター
theCamera:Camera — ビデオデータをキャプチャする Camera オブジェクトです。
|
関連する API エレメント
attachNetStream | () | メソッド |
public function attachNetStream(netStream:NetStream):void
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 2.5, Flash Player 10.2 |
アプリケーション内の StageVideo オブジェクトの境界内に表示するビデオストリームを指定します。ビデオストリームは、NetStream.play() で再生されるビデオファイルか、または null
です。ビデオファイルはローカルファイルシステムまたは Flash Media Server に保存できます。netStream
引数の値に null
を指定すると、StageVideo オブジェクト内でビデオが再生されなくなります。
再度 attachNetStream()
を呼び出す場合は、その前に、現在添付されている NetStream オブジェクトの close()
メソッドを呼び出してください。close()
を呼び出すと、そのビデオの再生に関係するハードウェアデコーダーなどのリソースがすべて解放されます。これで、別の NetStream オブジェクトまたは null
を指定して attachNetStream()
を呼び出せるようになります。
ビデオファイルにオーディオしか含まれない場合、このメソッドを使用する必要はありません。ビデオファイルのオーディオ部分は、NetStream.play()
を呼び出すと自動的に再生されます。ビデオファイルに関連付けられたオーディオを制御するには、ビデオファイルを再生する NetStream オブジェクトの soundTransform
プロパティを使用します。
パラメーター
netStream:NetStream — NetStream オブジェクトです。StageVideo オブジェクトへの接続を閉じるには、null を渡します。
|
renderState | イベント |
flash.events.StageVideoEvent
プロパティ StageVideoEvent.type =
flash.events.StageVideoEvent.RENDER_STATE
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 2.5, Flash Player 10.2 |
StageVideo オブジェクトのレンダリング状態が変化したときに、StageVideo オブジェクトによって送出されます。
StageVideoEvent.RENDER_STATE
定数は、renderState
イベントオブジェクトの type
プロパティの値を定義します。
このイベントには、次のプロパティがあります。
プロパティ | 値 |
---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
colorSpace | ビデオの表示に使用できるカラースペースです。 |
currentTarget | イベントリスナーで StageVideoEvent オブジェクトをアクティブに処理しているオブジェクトです。 |
status | ビデオのレンダリング(デコードおよび表示)がハードウェアとソフトウェアのどちらで行われるか、または、いっさい行われないかを示します。 |
target | 状態が変更された StageVideo オブジェクトです。 |
Tue Jun 12 2018, 10:34 AM Z