Flash10.2 GPUでの再生方法
本日アナウンスされた Flash Player 10.2 Beta1 でのGPUでの動画再生方法です。
ポイントとしては stageVideos でビデオのレイヤーを取得して、viewPortを指定してあげる感じ。
var sv:stageVideos = stage.stageVideos[0]; sv.viewPort = new Rectangle( 0 , 0 , 1920 , 1080 ); sv.attachNetStream(ns);
あっているか分かりませんがとりあえず動いたのでソースです。
package { import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageDisplayState; import flash.display.StageScaleMode; import flash.events.Event; import flash.events.KeyboardEvent; import flash.events.NetStatusEvent; import flash.geom.Rectangle; import flash.media.StageVideo; import flash.net.NetConnection; import flash.net.NetStream; import flash.ui.Keyboard; /** * * @author Thibault Imbert * */ [SWF(frameRate="1", backgroundColor="#ffccff" , width="1920", height="1080")] public class flash10_2Test extends Sprite { private var sv:StageVideo; private var nc:NetConnection; private var ns:NetStream; /** * * */ public function flash10_2Test() { addEventListener(Event.ADDED_TO_STAGE, onAddedToStage); } /** * * @param event * */ private function onAddedToStage(event:Event):void { //ステージの設定 stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; //ネットコネクション作成 nc = new NetConnection(); nc.connect(null); ns = new NetStream(nc); ns.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus); ns.client = this; //キーボードリスナー stage.addEventListener(KeyboardEvent.KEY_DOWN , onKeyDown ); } //キーボードを押したら動画を再生 /** * * @param e * */ private function onKeyDown( e:KeyboardEvent ):void { if ( sv == null && stage.stageVideos.length > 0 ){ sv = stage.stageVideos[0]; sv.viewPort = new Rectangle( 0 , 0 , 1920 , 1080 ); sv.attachNetStream(ns); ns.play( "anim_1.mp4" ); } } //以下はネットコネクション関係 /** * * @param infoObject * */ private function onNetStatus(infoObject:NetStatusEvent):void { var key:String; for (key in infoObject) { trace(key + ": " + infoObject[key]); } } /** * * @param infoObject * */ public function onXMPData(infoObject:Object ):void { var key:String; for (key in infoObject) { trace(key + ": " + infoObject[key]); } } /** * * @param infoObject * */ public function onMetaData ( infoObject:Object ):void { var key:String; for (key in infoObject) { trace(key + ": " + infoObject[key]); } } } }
参考リンク
- Getting started with stage video | Adobe Developer Connection
- stageVideoのスタートガイド
- Download Flex Hero - Flex SDK - Adobe Open Source
- 最新のFlexSDKのダウンロード。10.2対応版
- Launching Flash Player 10.2 Beta « Adobe Flash Player Team Blog
- Flash Player 10.2 Betaのアナウンス
- flash.events.StageVideoAvailabilityEvent - BETA ActionScript 3.0 Reference for the Adobe Flash Platform
- stageVideoのレファレンス
- Adobe ActionScript 3.0 * キューポイントとメタデータの使用
- stageVideoに使うネットストリームの説明