as3绕过策略文件给视频截图

接上篇 http://www.cnblogs.com/DarkMaster/p/5973593.html

 

这篇同样是在老外博客上找到的,分享给大家,再次感叹老外牛逼啊。

原文地址:http://gamespoweredby.com/blog/2014/11/netstream-playnull-bitmapdata-workaround/

老规矩直接上关键代码

var vidContainer : Sprite = new Sprite();
vidContainer.addChild(myVideo);

function enterFrame(e:Event):void{
 if ( decoded == netStream.decodedFrames ) return; // Here we skip multiple readings
 if ( vidContainer.graphics.readGraphicsData().length > 0 ) {
       myBitmap.bitmapData = GraphicsBitmapFill(vidContainer.graphics.readGraphicsData()[0]).bitmapData;
 }
}

话说这种方式以前很少接触,看了才知道原来还能这么玩。

大概就是视频画面最终也是要绘制到显示对象上的,在显示对象上通过readGraphicsData方法拿到所有绘制对象,里面就必定包含视频画面,然后把里面的bitmapData取出来就可以了,这样不需要拿到视频的策略文件,就可以截图。

 

题外话:在准备好了所有需要的策略文件之后,通过正常方式仍然没法好好截图,反而得使用这些类似hack的方法才能实现,这么多年了,官方也没修复,Adobe真是哀其不幸怒其不争啊!

 

posted @ 2016-10-21 16:59  sky0014  阅读(703)  评论(0编辑  收藏  举报