我知道我们无法记录/访问Flash播放器中的任何内容,因为它的安全沙箱。 相反,我们可以录制视频,同时将视频流式传输到服 像
netStream.publish("YourFileName.flv","record");
但在录像文件中,我只会获得一个视频文件,由webcam发布到服务器,我想记录整个会话。
有没有办法在本地录制,或者我可以录制窗口吗?
P.S。 :我不想尝试访问Flash播放器以外的任何内容。
提前致谢...
答案 0 :(得分:2)
首先,创建一个容器对象(扩展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
}