我尝试从网站上捕获一些动画,并使用ffmpeg将它们拼接在一起。
据我了解,文档startScreencast是必经之路。
如果我理解正确的话,可以通过以下方式开始截屏await Page.startScreencast({format: 'png', everyNthFrame: 1});
并在每个传入的帧中收听Page.screencastFrame(image =>{
const {data, metadata} = image;
console.log(metadata);
});
但是它永远不会打印出任何东西。因此,我认为它没有被调用。
我将目标存档如下:let counter = 0;
while(counter < 500){
await Page.startScreencast({format: 'png', everyNthFrame: 1});
const {data, metadata} = await Page.screencastFrame();
console.log(metadata);
counter += 1;
}
感觉像是性能不佳的骇客。
那么关于如何正确使用startScreencast
和screencastFrame
的任何建议?
最佳答案
每个接收到的帧也必须被确认。
await Page.navigate({url: 'http://www.goodboydigital.com/pixijs/examples/12-2/'});
await Page.loadEventFired();
await Page.startScreencast({format: 'png', everyNthFrame: 1});
let counter = 0;
while(counter < 100){
const {data, metadata, sessionId} = await Page.screencastFrame();
console.log(metadata);
await Page.screencastFrameAck({sessionId: sessionId});
}
链接至github issue以获得详细说明。