mirror of
https://gitee.com/sui-feng-cb/AzurLaneAutoScript1
synced 2026-03-30 15:33:52 +08:00
Fix: Catch av import error
This commit is contained in:
@@ -14,6 +14,7 @@ from module.device.connection import Connection
|
|||||||
from module.device.method.scrcpy.control import ControlSender
|
from module.device.method.scrcpy.control import ControlSender
|
||||||
from module.device.method.scrcpy.options import ScrcpyOptions
|
from module.device.method.scrcpy.options import ScrcpyOptions
|
||||||
from module.device.method.utils import recv_all
|
from module.device.method.utils import recv_all
|
||||||
|
from module.exception import RequestHumanTakeover
|
||||||
from module.logger import logger
|
from module.logger import logger
|
||||||
|
|
||||||
|
|
||||||
@@ -173,8 +174,14 @@ class ScrcpyCore(Connection):
|
|||||||
"""
|
"""
|
||||||
Core loop for video parsing
|
Core loop for video parsing
|
||||||
"""
|
"""
|
||||||
from av.codec import CodecContext
|
try:
|
||||||
from av.error import InvalidDataError
|
from av.codec import CodecContext
|
||||||
|
from av.error import InvalidDataError
|
||||||
|
except ImportError as e:
|
||||||
|
logger.error(e)
|
||||||
|
logger.error('You must have `av` installed to use scrcpy screenshot, please update dependencies')
|
||||||
|
raise RequestHumanTakeover
|
||||||
|
|
||||||
codec = CodecContext.create("h264", "r")
|
codec = CodecContext.create("h264", "r")
|
||||||
while self._scrcpy_alive:
|
while self._scrcpy_alive:
|
||||||
try:
|
try:
|
||||||
@@ -188,7 +195,6 @@ class ScrcpyCore(Connection):
|
|||||||
frame = frame.to_ndarray(format="rgb24")
|
frame = frame.to_ndarray(format="rgb24")
|
||||||
self._scrcpy_last_frame = frame
|
self._scrcpy_last_frame = frame
|
||||||
self._scrcpy_last_frame_time = time.time()
|
self._scrcpy_last_frame_time = time.time()
|
||||||
logger.info('frame received')
|
|
||||||
self._scrcpy_resolution = (frame.shape[1], frame.shape[0])
|
self._scrcpy_resolution = (frame.shape[1], frame.shape[0])
|
||||||
except (BlockingIOError, InvalidDataError):
|
except (BlockingIOError, InvalidDataError):
|
||||||
# only return nonempty frames, may block cv2 render thread
|
# only return nonempty frames, may block cv2 render thread
|
||||||
|
|||||||
@@ -79,7 +79,6 @@ class Scrcpy(ScrcpyCore):
|
|||||||
|
|
||||||
# Wait new frame
|
# Wait new frame
|
||||||
with self._scrcpy_control_socket_lock:
|
with self._scrcpy_control_socket_lock:
|
||||||
now = time.time()
|
|
||||||
while 1:
|
while 1:
|
||||||
time.sleep(0.001)
|
time.sleep(0.001)
|
||||||
if self._scrcpy_last_frame_time > 0:
|
if self._scrcpy_last_frame_time > 0:
|
||||||
|
|||||||
Reference in New Issue
Block a user