モバイル対応だけじゃない!

Flash Player 10.1 の特長を徹底紹介

10月5~7日にロサンゼルスにおいて Adobe MAX 2009 が開催されました。今回の MAX では、Flash Player や Adobe AIR といったクライアントサイドから、ColdFusion や LiveCycle といったエンタープライズ向け開発環境、そして Flash や Photoshop といったツール群までと幅広い分野における新情報が披露されました。まさに、Adobe が目指すデジタルライフ像をあますことなく体験できるイベントでした。

本誌では、その中から読者の皆さんの注目度が高い Flash Player 10.1、Flash CS5、Adobe AIR をピックアップし、数号にわたってそれらの詳細情報をお届けします。

最初に取り上げるのは、Flash Player 10.1 です。すでに話題となっているモバイル対応の他にも、生産性、高画質メディア配信、ブラウザとの統合においても魅力的な機能が満載です。

 

Flash Player 10.1 は、Adobe が Open Screen Project を発足して以来、初めてリリースするランタイムです。Open Screen Project とは、「PC やモバイル機器、その他のエレクトロニクスデバイスにおいて、一貫したランタイム環境とユーザ体験を実現しよう」というプロジェクトです。そのプロジェクトの基盤となるのが Flash Player であり、Flash Player 10.1 は Open Screen Project を大きく前進させる存在だと言えます。

Flash Player 10.1 では、スマートフォンやネットブックなど、幅広いモバイル機器をサポートしています。サポートしているモバイル OS は、Android、Microsoft Windows Mobile、Palm webOS、Symbian S60 です。もちろん、デスクトップ用の最新 OS である Windows 7 や Mac OS X 10.6(Snow Leopard) もサポートしています。

Flash Player 10.1 では、さまざまな新機能や機能強化が予定されており、それらは大まかに以下の4つのカテゴリに分けられます。

 

カテゴリごとに、Flash Player 10.1 の新しい特長を紹介していきましょう。

なお、年内に Flash Player 10.1 のパブリックベータ版が公開される予定です。

※本記事中で掲載している画像は、Adobe MAX 2009 の基調講演ビデオをキャプチャしたものです。Adobe TV(英語サイト)では、基調講演のほか、すべてのセッションのビデオが公開されています。

モバイル環境のサポート

モバイル環境に合わせたCPU&メモリマネージメント

スマートフォンなどのモバイル機器は、PC と比べると、CPU パワーやメモリ量が劣ります。そうしたモバイル機器でも SWF コンテンツを利用できるように、レンダリング、スクリプティング、メモリ消費、起動時間、バッテリーや CPU の最適化を行っています。

Automatic Memory Reduction
WebコンテンツをFlash Player 10(黒)とFlash Player 10.1(緑)で動作させた際のメモリ消費量の比較。
Flash Player 10.1では、約50%も減少しています

Battery Usage
Flash Playerチームが行った実験では、ビデオは3.4時間、アニメーションならば6.5時間、
ローパワー時のアニメーションなら14.5時間も再生できました。

なお、モバイル機器だけでなく、PC においても、メモリ消費や管理、起動時間、CPU 使用率、レンダリングやスクリプティングのパフォーマンスなどが向上しています。

モバイル機器搭載の仮想キーボードのサポート

Flash Player 10.1 では、物理的キーボードが検出されない場合、TextField クラスを使ってモバイル機器に搭載されている仮想キーボードを使うことができます。テキストフィールドの選択・非選択状態に合わせて、仮想キーボードの表示・非表示が自動的に切り替わります。

テキストフィールドを選択すると、テキストフィールドはページ表示領域の中央に移動し、仮想キーボードで隠れてしまわないようにズームやスクロール処理が行われます。このようにスムーズかつ直感的にテキスト編集が可能となります。また、入力中に画面を回転させたり、電話がかかってきたり、他のシステムイベントが起きたりした場合でも、入力済みのテキスト情報は保持されます。

仮想キーボードのサポート
Google financeのページで入力作業を行っているところ。
テキストフィールドをタップすると、モバイル機器が搭載している仮想キーボードが表示されます。

現時点で仮想キーボードを制御できるのは TextField クラスのみです。Text Layout Framework や他の flash.text.engine 系のクラスでは機能しません。

マルチタッチとジェスチャー操作を検出

最新のハードウェアや OS では、マルチタッチやジェスチャー操作に対応したユーザインターフェイスを実装しています。新しい ActionScript 3 API を使えば、これらのインターフェイスを利用することができます。複数のオブジェクトと同時にインタラクションしたり、つまみ/スクロール/回転/拡大縮小/二本指タップなどのジェスチャー操作を利用したりすることができます。

マルチタッチとジェスチャー操作を検出
デモ用にFlash Player 10.1を搭載したNokia N900で、指を使ってスクロール操作しているところ。

加速度センサーのサポート

ActionScript に新しく Accelerometer クラスが追加されます。このクラスを使えば、機器に内蔵された加速度センサーから XYZ 軸の加速度値を取得することができます。加速度入力装置を利用して、ユーザに新たな入力・操作手段を提供したり、画面の方向をコントロールしたりすることが可能です。なお、バッテリーの寿命を保つために、加速度更新頻度を指定することができます。

デバイス方向に合わせた画面方向切り替え(モバイル機器のみ)

加速度センサーのサポートの有無に関わらず、モバイル機器の中にはその方向によって画面表示が自動的に切り替わるものがあります(たとえば、ポートレイトモードとランドスケープモードの切り替え)。Flash Player 10.1 では、モバイル機器に内蔵されたアプリケーション(ブラウザなど)の挙動に同調して、SWF コンテンツもその画面方向変化に対応させることが可能です。画面表示モードの切り替えをイベントとして取得し、SWF コンテンツのレイアウトやフォーマットを変化させることができます。逆に、ボタンなどを用意し、画面表示の切り替えをユーザが制御できるようにすることもできます。

画面方向切り替え

画面方向切り替え
Palm Pre webOSを搭載したデバイスを使い、ブラウザ上でYahoo! Movieのページを表示させたところ。
デバイスの向きを変えると、ブラウザの向きも変わり、それに合わせてページ内のFlash Videoも向きが変わります

モバイル向けに最適化された SWF 管理(モバイル機器のみ)

モバイル機器では、PC に比べると、CPU やメモリなどが限られています。Flash Player 10.1 では、モバイル特有の動作環境を考慮して、SWF のロードや再生を自動で最適化します。SWF 優先度/画面上での可視性/有効メモリ/CPU リソースを踏まえた上で、SWF コンテンツのインスタンスをロードしたり、待機させたりします。そうすることで、HTML ページ内にある各 SWF のローディングが完了せずとも、すぐにブラウジングができるようになります。

SWF 優先度は、新しい HTML パラメータhasPriorityを使って指定することができます。待機となったインスタンスは、HTML ページのロードが完了してからロードされます。また、スクリーン外のインスタンスや不可視状態のインスタンスは、画面上に表示される状態となってからロードされます。

さらに、画面から外れた SWF コンテンツは再生を一時停止し、電話やアラームなどの優先アプリケーションが起動した際には CPU/メモリ/バッテリーの消費を抑えるようになっています。

スリープモード時の最適化(モバイル機器のみ)

モバイル機器では消費電力を抑えるためにスリープモードがあります。Flash Player 10.1 では、スリープモードを検知でき、スリープモード時は CPU/バッテリーの消費を抑えるためにフレームレートを小さくして再生します。スリープモードが解除された際には、SWF に設定されたフレームレートに戻ります。

なお、オーディオやビデオの再生時の場合は、この最適化は行われません。また、電話がかかってきた場合には、Flash Player の動作を一時停止します。

グラフィックのハードウェアアクセラレーションのサポート(モバイル機器のみ)

スマートフォンなどのモバイル機器では、ソフトウェアレンダリングの代わりに、GPU ベースのベクターレンダリングを利用します。その結果、レンダリングパフォーマンスが向上し、より少ないパワーでも、表現力豊かなユーザ体験を提供することができます。

Flash Player 10.1 では、3D エフェクト、ベクターグラフィック、色変換、アルファ、デバイスフォント/埋め込みフォント、Saffron(アンチエイリアスエンジン)、サーフェス描画のハードウェアアクセラレーションをサポートしています。

ハードウェアアクセラレーションのサポー
Intel AtomプロセッサとNvidia Ionプロセッサ内蔵のネットブック「HP Mini 311」にFlash Player 10.1を搭載し、
ビデオを再生したところ。フルスクリーン表示でも、コマ落ちすることなく、滑らかに再生しています

ビデオのハードウェアデコードのサポート

Flash Player 10.1 では、最小限のマシン負荷でスムーズかつ高画質のビデオを配信するために、ハードウェアベースの H.264 ビデオデコードをサポートしています。ビデオのデコード作業を CPU からハードウェアへと移行することで、ビデオ再生のパフォーマンスが向上し、システムリソースの負担が減り、バッテリーの寿命も延ばすことができます。

フレームレートの調整(モバイル機器のみ)

Flash Player 10.1 では、SWF のフレームレートを監視し、必要に応じてフレームレートを下げることで、より大きな CPU パワーをレンダリングに割くようになっています。その結果、コンテンツのユーザビリティが向上し、CPU の利用率を抑えることができます。もし、フレームレートが閾値より下がった場合、Flash Player はフレームを飛ばして、所定のフレームレートに達するように調整します。

生産性の向上

予期せぬエラーを検出

新しく「グローバルエラーハンドラ」というハンドラが用意されます。このハンドラを1つ記述するだけで、すべてのランタイムエラーを処理することが可能となります(try/catch文で検出するエラーは除く)。そのため、ユーザがコンテンツを再生・操作している際に、予期せぬランタイムエラーが生じた場合、オリジナルのエラーメッセージを表示させることができます。

なお、グローバルエラーハンドラを記述した SWF をデバッグプレーヤで検証した場合、エラーポップアップは表示されません。

グローバル化のサポート

新しい API としてActionScript globalization APIが追加されます。この API を使うと、Flash Player は OS で設定されている値を使って、テキストなどを処理し、ロケーション状況を元に情報を表示します。また、Flash Player が実行されている OS 側で現在選択されているロケールと関係なく、任意のタイミングで任意の国の通貨、小数点、時間の表記フォーマットに変換することもできます。

これらの処理を行う上でロケール要件の知識は必要ありません。ロケール特有の情報や処理としては、「日付」「時間」「通貨」「数字フォーマット」「通貨や数字の解析」「テキストの並び替えや検索時の文字列比較」「大文字/小文字変換」などがあります。

ブラウザ統合の強化

ブラウザのプライバシーモード閲覧のサポート(デスクトップのみ)

Firefox、Chrome、Internet Explorer には、ローカルデータや閲覧履歴がローカルに保存されない、「プライベートブラウジング」という閲覧モードがあります。Flash Player 10.1 では、ユーザがプライベートブラウジングモードで閲覧している場合、SWF や HTML コンテンツにおいても同様の仕様が適用されるようになっています。

プライベートブラウジングモード時に取得した Local Shared Object は、Flash Player がメモリ上にある間は従来の Shared Object のように振る舞いますが、閲覧モードがパブリックブラウジングモードに切り替わると、プライベートブラウジングモード時に取得した Local Shared Object は削除されます。

プライベートブラウジングモードに入る前にすでに存在していた Shared Object はそのまま保存されていますが、プライベートブラウジングモードが解除されない限り、その Shared Object にはアクセスできません。なお、Flash Player のキャッシュ内にあるライブラリは(たとえば、Flex framework など)、プライベートブラウジングモードによる影響は受けません。

メモリ不足の管理

Flash Player 10.1 では、SWF がインスタンスに対して有効なメモリ量以上にメモリを割り当てようとすると、そのインスタンスをシャットダウンして、メモリ不足によるブラウザクラッシュを回避するようになっています。その際、ユーザに対して SWF を再起動するように通知したり、すべてのインスタンスをシャットダウンしたりする必要がある場合は、ページをリフレッシュするように通知します。

高画質メディア配信の強化

コンテンツの保護(デスクトップのみ。出力保護機能は Windows のみ。2010年前半公開予定の Adobe Flash Access 2.0 SDK が必要)

Adobe Flash Access 2.0 SDK を使って保護したメディアは、Flash Player 10.1 上で安全に再生することが可能です。このコンテンツ保護機能は、ビデオオンデマンド、レンタル、電子販売などの幅広いビジネスモデルで利用でき、ダウンロード配信とストリーミング配信の両方において機能します。業界標準の暗号技術を使った堅牢な保護機能なので、改ざんやキャプチャ行為からコンテンツを守ることができます。

また、Windows 環境では出力保護機能をサポートしており、コンテンツ提供者はアナログ出力やデジタル出力時の保護に関する条件を指定することができ、無許可の録画行為を防ぐことができます。

なお、今回の Flash Player リリースバージョンでは、暗号化されたコンテンツに対してハードウェアアクセラレーションを利用することはできません。

RTMFP プロトコルのサポート(Stratus が必要)

Flash Player 10.1 では、RTMFP プロトコルをサポートしています。RTMFP プロトコルは「グループ」機能をサポートしており、アプリケーションのユーザをセグメント化し、グループのメンバー間だけでメッセージやデータを送信できます。アプリケーションレベルマルチキャストを使って、1対多や複対多での連続ライブストリーミング(ビデオやオーディオ)、RTMFP グループによるライブビデオチャットなどを実現することが可能です。

HTTP でビデオストリーミング

Flash Access 2.0 と Flash Player 10.1 を使えば、HTTP ストリーミングであっても、高画質かつ効率よく、さらに堅牢な保護機能のもとでメディアを配信することが可能です。HTTP ストリーミングというオープンフォーマットのソリューションを使えば、オンライン出版社は既存のネットワークを活用でき、さらにインフラのキャッシュ機能を利用して効率よくメディアを配信することができます。

スマート再接続機能(2009年11月公開予定の FMS 3.5.3 server が必要)

スマート再接続機能を使えば、RTMP ストリーミング中に接続が遮断されたとしても、バッファを使って再生を続けることができます。そのため、短時間のネットワーク障害にも耐えることができ、継続的なビデオ再生が可能となります。接続が回復すると、再生を再開します。

また、ActionScript に再接続ロジックを追加して、サーバ接続を再構築したり、ビデオの映像を崩すことなくストリーミングを再開したりすることが可能です。

スマートシーク機能(2009年11月公開予定の FMS 3.5.3 server が必要)

スマートシーク機能とは、すでにバッファ済みの映像データに対してシークできるようにする機能です。これにより、シーク後の再生タイムラグを減らすことができ、サーバにアクセスすることなく簡単にビデオの巻き戻し/早送りをすることができるようになります。

スマートシーク機能により、ストリーミング配信時のシークパフォーマンスが向上するだけでなく、スローモーション、倍速、簡易リプレイといった機能も作ることが可能です。

バッファ済みストリームのキャッチアップ機能

バッファ済みストリームのキャッチアップ機能を使えば、遅延時間の閾値を設定することができます。この閾値を超えると、ビデオ再生の速度を若干スピードアップし、ライブビデオストリーミングの再生状況がリアルタイムの再生状況と同期するようになります。

ダイナミックストリーミング機能の強化(2009年11月公開予定のFMS 3.5.3 server が必要)

Flash Player 10 と FMS 3.5 には、ダイナミックストリーミング機能があります。Flash Player 10.1 ではその機能をさらに強化し、ビットレートを変更する際の時間が短縮されました。そのため、有効な回線幅や CPU 速度に応じて最適な閲覧環境がすぐに提供されるようになります。もはやユーザはバッファリングで待たされることはありません。ビットレート変換の速度の向上により、回線幅が変動するような状態でも、中断することなくビデオを再生することができます。

マイクアクセス機能(デスクトップのみ)

Flash Player 10.1 では、マイクから入力される波形のバイナリデータにアクセスすることができます。この機能を使えば、トランスコーディング用の録音、カラオケ、ボコーダのような音声操作、超音波解析、ピッチ検出など、新しいタイプのオーディオアプリケーションを構築することができます。

 

※本記事中に登場した新しい API のドキュメントは、Flash Player 10.1 のリリースに合わせて公開される予定です。

日本のユーザー向けの改善点

Flash Playerチームでは、日本のユーザーを対象とした改善を行っています。以下は、その一例です。

  1. wmode の透明(transparent)あるいは不透明(opaque)設定時に、Firefox でロードした swf 上のテキストフィールドに日本語が入力されない問題の解決。対応するのは、Flash Player 10.1 + Firefox 3.5 以降
  2. インライン入力のサポート
関連情報