我想使用Python上的AndroidViewClient以60帧/秒的速度为设备拍摄快照,因此我在循环中使用了功能device.takeSnapshot(reconnect=True)
。但是,此功能的时间消耗约为0.5秒,这使我获得2 FPS。我认为重新连接使它变得很长。那么,为什么拍摄一张快照后设备会自动断开连接?有没有办法保持连接?还有其他方法可以减少时间消耗并获得更高的FPS吗?
答案 0 :(得分:0)
尽管成为screenrecord
并不是AndroidViewClient/culebra的目标,但我进行了这样的测试
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)上可以在15秒内拍摄60张屏幕截图,或者 4 FPS 。 另外,还要考虑到屏幕尺寸为1080x2160,所以要传输的字节很多。
您可以看一下takeSnapshot()
的源代码,并发现有一些可以加速或删除的部分,例如PIL Image
可以推迟创建。