ここでは、フルスクリーンモードの動作方法について説明し、さらにFlash Player 9 Update 3をインストールした後発生する変化について説明します。
Flash Player 9 Update 3が適用済みで、前提条件が満たされていて、FLVPlayback.fullScreenTakeOverプロパティがtrueに設定されている場合、Flash Playerは、ソフトウェアを使用してビデオファイルを拡大するのではなく、ハードウェアアクセラレーションを使用してビデオファイルを拡大します。
FLVPlaybackコンポーネントをFlash Playerの以前のバージョンで実行する場合、またはハードウェアアクセラレーションに関する前提条件が満たされていない場合、Flash Playerはそれ自体でビデオを拡大します。 Flash Player 9より前のすべてのバージョンは、フルスクリーンモードへの拡大をFlash Player自体に依存しているので、これが主な違いとなります。
フルスクリーンサポートのハードウェアアクセラレーションを利用するには、4MB以上のVRAM(ビデオRAM)を備えたDirectX 7対応のビデオカードがコンピュータに搭載されている必要があります。 このハードウェアサポートは、Windows 2000またはMac OS X 10.2、およびこれらのオペレーティングシステムの以降のバージョンで利用できます。 DirectXは、ソフトウェアとビデオハードウェアの間のインターフェイスとして機能するAPIを提供し、3次元および2次元グラフィック、その他の表示を高速化します。
ハードウェアアクセラレーションモードを利用するには、次のいずれかの方法でフルスクリーンモードを起動する必要があります。
注:Stage.displayStateプロパティをStageDisplayState.FULLSCREENに設定してフルスクリーンモードを起動する場合、ビデオハードウェアおよびメモリがシステムで利用できる場合でも、FLVPlaybackはハードウェアアクセラレーションを使用しません。
フルスクリーンモードのハードウェアアクセラレーションを使用すると、ビデオプレイヤーおよびFLVファイルに合わせて、FLVPlaybackコンポーネントのスキンが拡大されます。 次の画像は、解像度が1280 x 1024の15インチモニタでフルスクリーンモードを使用して、幅320ピクセル、高さ240ピクセル(FLVPlaybackコンポーネントのデフォルトのサイズ)のビデオファイルを再生した結果です(図1を参照)。
図1.ハードウェアアクセラレーションを使用したフルスクリーンモードで拡大されたFLVPlaybackコンポーネントのスキン
拡大されたスキンの歪みは、FLVファイルのサイズが小さければ小さいほど、またはFLVファイルを表示するモニタが大きければ大きいほどより目立ちます。 反対に、大きいFLVファイルの場合、または小さいモニタでビデオを表示した場合には、歪みはあまり目立ちません。 例えば、640 x 480から1600 x 1200に変更すると、スキンのサイズは増えますが、スキンの歪みは少なくなります。
FLVPlaybackコンポーネントには、skinScaleMaximumプロパティがあり、このプロパティを使用して、ハードウェアアクセラレーション使用時のFLVPlaybackスキンの拡大を制限できます。 拡大対象の特定のコンテンツに基づいて、および大きいスキンの外観に関する好みに基づいて、拡大の制限を選択できます。 ただし、スキンの拡大を制限するには、ビデオを拡大するためのハードウェアとソフトウェアの組み合わせが必要になります。 場合によっては、スキンの拡大を制限すると、高いビットレートでエンコードした大きいサイズのビデオのパフォーマンスに悪影響を与えることがあります。 ビデオが大きい場合(例えば、幅が640ピクセル以上で高さが480ピクセル以上の場合)、skinScaleMaximumを小さい値に設定することは避ける必要があります。これは、大きい表示モニタでパフォーマンス上の問題が発生する場合があるからです。 図2は、図1に示されているスキンと同じスキンです。ただし、このスクリーンショットを写す前に、skinScaleMaximumの値を2に設定しています(図2を参照)。 この場合では、FLVPlaybackコンポーネントが(スキン以外の)ビデオを元のサイズの2倍より少し大きい640 x 512でレンダリングし、ハードウェアアクセラレーションが残りの拡大処理(640 x 2 = 1280および512 x 2 = 1024)をビデオとスキンの両方に対して実行しています。
図2.skinScaleMaximumプロパティを設定して、フルスクリーンモードでFLVPlaybackコンポーネントのスキンを拡大する場合に使用する最も大きい倍数を指定
次のコード例に示されているように、ActionScript 3.0でenterFullScreenDisplayState()メソッドを呼び出すことでも、フルスクリーンモードを起動できます。
function handleClick(e:MouseEvent):void {
myFLVPlybk.enterFullScreenDisplayState();
}
myButton.addEventListener(MouseEvent.CLICK, handleClick);
この例では、FLVPlaybackスキンのフルスクリーン切り替えボタンをクリックすることでフルスクリーンモードを実行するのではなく、ステージの通常のボタン(MyButton)をクリックすることで実行します。 ボタンをクリックすると、handleClickイベントハンドラがトリガされます。このイベントハンドラがenterFullScreenDisplayState()メソッドを呼び出します。
enterFullScreenDisplayState()メソッドは、Stage.displayStateプロパティをStageDisplayState.FULL_SCREENに設定します。このため、displayStateプロパティと同じ制限が実行されます。 enterFullScreenDisplayState()メソッドおよびStage.displayStateプロパティの使用の詳細については、『ActionScript 3.0コンポーネントリファレンスガイド』を参照してください。
フルスクリーンモードを終了するには、フルスクリーンボタンをもう一度クリックするか、Escキーを押します。
次のプロパティを設定すると、レイアウトが変更され、その結果、FLVPLaybackコンポーネントはフルスクリーンモードを終了します。 height、registrationHeight、registrationWidth、registrationX、registrationY、scaleX、scaleY、width、x、y。 次のメソッドを呼び出した場合も、FLVPlaybackコンポーネントはフルスクリーンモードを終了します。 setScale()、setSize()。
alignプロパティまたはscaleModeプロパティを設定すると、FLVPlaybackコンポーネントはそれらをセンターに設定し、ユーザがフルスクリーンモードを終了するまで、コンテンツの縦横比を維持(maintainAspectRatio)します。
またフルスクリーンモードを使用しているときに、fullScreenTakeOverプロパティの値をtrueからfalseに変更することでも、Flashはフルスクリーンモードを終了します。