예제 #1
0
        liveSocket, address = hostSocket.accept()

        TARGET_FPS = 30
        TIME_FRAME = 1 / TARGET_FPS

        frame = 0

        start = time.perf_counter()
        while not self.livestreamEvent.is_set():
            w, h, data = self.screenHandler.TakeScreenshotAsBytes(960, 540)
            state = SendMessage(liveSocket,
                                str(w) + " " + str(h) + " " + str(frame + 1),
                                data)
            if not state:
                self.HandleMessageFault()
                break
            frame += 1
            targetTime = frame * TIME_FRAME
            end = time.perf_counter()
            elapsed = (end - start)
            waitTime = targetTime - elapsed if targetTime >= elapsed else 0.0
            time.sleep(waitTime)

        liveSocket.close()


if __name__ == "__main__":
    DEBUG = True
    a = ScreenHandler()
    m, n = a.Execute("", "")