簡體   English   中英

使用Flex / Flash錄制

[英]Recording using Flex/Flash

我知道我們無法通過Flash Player錄制/訪問任何內容,因為它是安全沙箱。 相反,我們可以在將視頻流式傳輸到服務器時記錄視頻。 喜歡

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

但是在記錄文件中,我只會得到一個由網絡攝像頭發布到服務器的視頻文件,我想記錄整個會話。

有什么辦法可以在本地記錄它,還是可以記錄窗口?

ps:我沒有嘗試訪問Flash Player之外的任何內容。

提前致謝...

好的,因此您可以像這樣記錄swf的全部內容:

首先,創建一個容器對象(任何擴展了實現IBitmapDrawable的DisplayObject的對象),然后將您要捕獲的所有內容(視頻視圖以及“會話”中的其他所有內容)放置,然后使用ENTER_FRAME事件或Timer(最好控制捕獲fps),使用BitmapData.draw(container)將容器繪制到BitmapData。 使用其addFrame()方法將該BitmapData傳遞到此處找到FLV編碼庫中 (該庫隨附的文檔和示例……非常簡單),就是這樣! 完成后,您將獲得一個flv視頻,其中包含swf中發生的情況的逐幀“屏幕捕獲”! 只要確保一切都在容器中! 如果您願意,該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
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM