diff --git a/src/MeoAssistant/Controller.cpp b/src/MeoAssistant/Controller.cpp index e8ebee4534..ac2aefffe0 100644 --- a/src/MeoAssistant/Controller.cpp +++ b/src/MeoAssistant/Controller.cpp @@ -741,7 +741,8 @@ bool asst::Controller::screencap(const std::string& cmd, const DecodeFunc& decod else { Log.info("data is not empty, but image is empty"); - if (m_adb.screencap_end_of_line == AdbProperty::ScreencapEndOfLine::UnknownYet) { + if (m_adb.screencap_end_of_line == AdbProperty::ScreencapEndOfLine::UnknownYet || + m_adb.screencap_end_of_line == AdbProperty::ScreencapEndOfLine::LF) { Log.info("try to cvt lf"); convert_lf(data); @@ -754,6 +755,7 @@ bool asst::Controller::screencap(const std::string& cmd, const DecodeFunc& decod Log.error("convert lf and retry decode failed!"); } } + m_adb.screencap_end_of_line = AdbProperty::ScreencapEndOfLine::UnknownYet; return false; } } diff --git a/src/MeoAssistant/Controller.h b/src/MeoAssistant/Controller.h index a5884bf77f..e1315df259 100644 --- a/src/MeoAssistant/Controller.h +++ b/src/MeoAssistant/Controller.h @@ -91,7 +91,8 @@ namespace asst void random_delay() const; void clear_info() noexcept; - // 转换data中所有的crlf为lf:有些模拟器自带的adb,exec-out输出的\n,会被替换成\r\n,导致解码错误,所以这里转一下回来(点名批评mumu) + // 转换 data 中所有的 crlf 为 lf:有些模拟器自带的 adb,exec-out 输出的 lf 会被替换成 crlf, + // 导致解码错误,所以这里转一下回来(点名批评 mumu 和雷电) static void convert_lf(std::vector& data); bool* m_exit_flag = nullptr;