我希望把我的设备的快照在使用Python AndroidViewClient 60 FPS,所以我使用的功能device.takeSnapshot(reconnect=True)
在一个循环中这样做。 然而,似乎这个函数的时间消耗大约为0.5秒,这给了我2 FPS。 我认为,重新连接是什么使得它长。 那么,为什么设备取一个快照后自动断开? 有没有一种方法,以保持在连接? 有没有改善的时间消耗,获得更高的FPS任何其他方式?
Answer 1:
尽管这不是AndroidViewClient /库莱布拉的目标是要成为一个screenrecord
呃,我跑这样的测试
device, serialno = ViewClient.connectToDeviceOrExit()
t = time.time()
for s in range(60):
device.takeSnapshot(reconnect=True)
t1 = time.time()-t
print "t={} secs r={} screenshots/sec".format(t1, 60/t1)
和快速电话(像素3)它可以采取60个截图在15秒或4 FPS。 此外,考虑到屏幕尺寸为1080x2160所以有很多要传输的字节。
你可以看看takeSnapshot()
的源代码,并看到有您可以删除或更改,如果你想加快速度,像PIL某些部分Image
建立可推迟。
文章来源: Python - AndroidViewClient take snapshots in high FPS