使用Flex / Flash录制

时间:2015-04-07 12:30:42

标签: actionscript-3 flash flex record

我知道我们无法记录/访问Flash播放器中的任何内容,因为它的安全沙箱。 相反,我们可以录制视频,同时将视频流式传输到服 像

   netStream.publish("YourFileName.flv","record");

但在录像文件中,我只会获得一个视频文件,由webcam发布到服务器,我想记录整个会话。

有没有办法在本地录制,或者我可以录制窗口吗?

P.S。 :我不想尝试访问Flash播放器以外的任何内容。

提前致谢...

1 个答案:

答案 0 :(得分:2)

好的,所以你可以像这样记录swf的全部内容:

首先,创建一个容器对象(扩展DisplayObject实现IBitmapDrawable的任何东西)然后放置你想要捕获的所有东西(视频视图和其他所有东西在你的#34; session"中)然后使用ENTER_FRAME事件或Timer (最好控制捕获fps),使用BitmapData.draw(容器)将容器绘制到BitmapData。使用它的addFrame()方法将该BitmapData传递给FLV encode library found here(文档和示例附带该库...超级简单)就是这样!当你完成后,你将有一个包含逐帧的flv视频"屏幕截图"在你的瑞士法郎发生了什么!只要确保一切都在容器中!如果你愿意,那个lib也会接受捕获的音频。

private function startCapturing():void{
    flvEncoder.start(); // see the libs docs and examples

    var timer:Timer = new Timer(1000/15); //capture at 15 fps
    timer.addEventListener(TimerEvent.Timer, onTimer);
    timer.start();
}

private function onTimer(event:TimerEvent):void{
    var screenCap:BitmapData = new BitmapData(container.width, container.height);
    screenCap.draw(container);

    flvEncoder.addFrame(screenCap); // see the libs docs and examples
}