Flash Player 17 と Adobe AIR 17 のベータ版

Adobe Labs に Flash Player 17 と AIR 17 のベータ版が公開されています。 (AIR & Flash Player@Labs

現時点での新機能は以下の 3 つです。全て AIR 関連の機能です。

  • Stage3D でビデオテクスチャをサポート
  • Stage3D の新しいプロファイル Standard Extended と AGAL3 (モバイル環境のみ)
  • iOS アプリのパッケージング速度の改善

最後の iOS アプリパッケージングの件は、32bit 版と 64bit 版を同時にコンパイル処理することで、最大 50% の処理時間短縮が見込めるというものです。

Stage3D - ビデオテクスチャのサポート

Windows, Mac, iOS 環境の AIR アプリで、ビデオを Stage3D のテクスチャとして使用できる機能が追加されます。バージョン 15 のときからベータ版としてはお試しできるようになっていたものが、ようやく正式にサポートされることになりそうです。 (Android 環境については、次以降のバージョンでの対応となるとのこと)

さて、ビデオをテクスチャとして利用するために追加されたクラスは、名前もそのまま VideoTexture です。

VideoTexture は TextureBase のサブクラスで、NetStream もしくは Camera のストリームから直接テクスチャを取り出せます。Video から取り出したフレームをビットマップ化して表示するよりずっと簡単です。

また、VideoTexture は GPU を利用するため処理が高速です。

環境に依存する機能のため、Context3D の supportsVideoTexture 属性を使って、ビデオテクスチャが利用できるかを確認します。値が true なら利用可能です。

if (Context3D.supportsVideoTexture)
{
  // VideoTextureオブジェクトが利用できる
}

VideoTexture のインスタンスは、Context3D クラスの createVideoTexture() メソッドから取得できます。VideoTexture オブジェクトと入力ビデオストリームを関連付けるには、下のように attachNetStream() か attachCamera() を使います。

var ns:NetStream;
var context3D:Context3D;
var texture:VideoTexture;
 
texture = context3D.createVideoTexture();
texture.attachNetstream(ns);
...

テクスチャが利用可能になると VideoTexture オブジェクトから Event.TEXTURE_READY イベントが発行されます。

Event.TEXTURE_READY イベントのリスナーは NetStream.play() を呼ぶ前に登録しておきます。これは、描画するテクスチャの用意ができたのに呼び出す処理が無い、という状態を避けるためです。

texture.addEventListener(Event.TEXTURE_READY, renderFrame);
 
ns.play("myVideo.3gp");
 
...
 
function renderFrame(e:Event):void
{ // ここでテクスチャの描画処理 }

イベントで取得するフレームは、オーディオの再生と同期されます。再生中の音声のタイミングより前のフレームは自動的に飛ばされることになっています。

StageVideo と同様に、再生中のハードウェアリソースの状態変化を知らせるイベント VideoTextureEvent が利用できます。

イベントの使い方、通知される状態、共に StageVideoEvent とおんなじです。

texture.addEventListener(VideoTextureEvent.RENDER_STATE, onRenderState);
 
function onRenderState (event:VideoTextureEvent)
{
  // event.statusは以下のどれかになる
  //
  // VideoStatus.SOFTWARE
  // VideoStatus.ACCELERATED
  // VideoStatus.UNAVAILABLE
}

Stage3D - Standard Extended プロファイル

Flash ランタイムのバージョン 16 では、Standard と Standard Constrained が利用可能になりました。 (Flash Player 16 と Adobe AIR 16 の新機能と 64 bit iOS アプリ

バージョン 17 では、さらに、OpenGL ES 3.0 対応のモバイルデバイス用の Standard Extended プロファイルが追加されるようです。

Standard Extended プロファイルでは AGAL3 を利用できます。以下の表のように、AGAL3 は AGAL2 よりもたくさんのレジスターが使えます。

  AGAL1 AGAL2 AGAL3
VA 8  8  16 
V 8  10  10 
VT 8  26  26 
VC 28  64  200 
FT 8  26  26 
VC 128  250  250 

AGAL3 対応の新しい AGALMiniAssembler は https://github.com/adobe-flash/graphicscorelib/ から入手できます。

OpenGL ES 3.0 が前提となるため、iPhone 5S 以降で利用可能な機能ということになります。デスクトップ環境への実装は将来のバージョンで、ということです。

 

トラックバック(0)

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

コメントする

2015年2月

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
レンタルサーバー

月別 アーカイブ

Powered by Movable Type 5.2.11