StageVideo

愿景很美好,现实很残酷,我的电脑居然不支持。有毛用。

转至 http://www.cnblogs.com/holybozo/archive/2010/12/09/1901265.html

更多具体详细的就看原文吧

Getting started with stage video: http://www.adobe.com/devnet/flashplayer/articles/stage_video.html

Introduction to StageVideo: http://gotoandlearn.com/play.php?id=134

以防被删,记录部分信息

老式的Video作为显示对象的一种,由CPU负责渲染,某些情况下GPU承担一点事情。虽然可以实现很有创意的想法,但也因此导致CPU负担加大。

新式的StageVideo并不是一种显示对象,由GPU负责渲染,它和视频、硬件、平台都有着密切的关系。效率大幅提升的同时,也有很多限制和要求。

对于视频有两点要注意,一是H.264的视频编码,对硬件加速来说最友好,其它的可能会导致由CPU来负责渲染。二是YUV 4:2:0色度抽样

以下是StageVideo的一些限制 

# StageVideo无法任意旋转,只能做直角旋转(每次转90度)
# StageVideo不能设置colorTransform和3D形变,也不能斜切(skew)。
# StageVideo不能设置透明,混合模式,滤镜,遮罩和scale9Grid。
# video无法被BitmapData.draw# video不能设置位图缓冲(bitmap-cached)。
# video不能嵌入到swf中。StageVideo只能通过NetStream播放。
# 由于基于底层硬件,所以有些颜色空间(color space)可能不支持。如果碰到这种情况Flash Player会选择一个合适的颜色空间。提供了查询颜色空间的API。
# 播放video的个数根据平台不同是有区别的。大多数手机系统,只有一个。也就是说,即使有几个SWF同时播放,也只有一个可以享受到硬件加速。
# 为确保Flash Player在桌面和TV设备的兼容性,请设置wmode=direct
# 避免wmode=transparent。有些平台比如Google TV不支持这个。wmod=window都支持。

强烈建议设置wmode=direct,其他如wmode=window,transparent,opaque,都有可能导致StageVideo不可用。


关于API

StageVideo直接由FP创建,我们无法实例化。创建个数由所在平台决定,保存于 stage.stageVideos:Vector<StageVideo> 。

1
2
3
4
5
6
var v:Vector.<StageVideo> = stage.stageVideos;      
var sv:StageVideo;      
if ( v.length >= 1 )      
{      
    sv = v[0];      
}

一般来说,并不是SWF一运行就马上创建好的,什么时候创建好,需要通过监听 StageVideoAvailabilityEvent.STAGE_VIDEO_AVAILABILITY 事件。

1
stage.addEventListener(StageVideoAvailabilityEvent.STAGE_VIDEO_AVAILABILITY, onStageVideoState);

这个事件中,会告知StageVideo是否可用 

1
2
3
4
private function onStageVideoState(event:StageVideoAvailabilityEvent):void      
{      
    var available:Boolean = (event.availability == StageVideoAvailability.AVAILABLE);      
}
原文地址:https://www.cnblogs.com/anfeind/p/2831907.html