Runtime v2.81 · อัปเดต 30 ก.ย. 2569
ชุดควบคุมการจับภาพหน้าจอร่วมกันในการรันมาโครปัจจุบัน โดยปกติแคชอัตโนมัติจะใช้เฟรมซ้ำได้นานถึง 100 ms เพื่อลดงานจับภาพ หากต้องตรวจจับต่อเนื่องโดยใช้เฟรมล่าสุดที่มี ให้ใช้ auto_cache_off() ซึ่งเพิ่มภาระประมวลผลและการใช้แบตเตอรี่ ไม่รับประกันว่าจะทำงานเร็วขึ้นหรือได้พิกเซลที่เพิ่งวาดใหม่ ส่วน cache_on() จะปักหมุดเฟรมแยกต่างหากและมีลำดับความสำคัญเหนือการตั้งค่าแคชอัตโนมัติ
รูปแบบคำสั่ง
ไม่สามารถสร้างคลาสนี้โดยตรงได้
พฤติกรรม / ผลข้างเคียง
ชุดควบคุมการจับภาพหน้าจอร่วมกันในการรันมาโครปัจจุบัน โดยปกติแคชอัตโนมัติจะใช้เฟรมซ้ำได้นานถึง 100 ms เพื่อลดงานจับภาพ หากต้องตรวจจับต่อเนื่องโดยใช้เฟรมล่าสุดที่มี ให้ใช้ auto_cache_off() ซึ่งเพิ่มภาระประมวลผลและการใช้แบตเตอรี่ ไม่รับประกันว่าจะทำงานเร็วขึ้นหรือได้พิกเซลที่เพิ่งวาดใหม่ ส่วน cache_on() จะปักหมุดเฟรมแยกต่างหากและมีลำดับความสำคัญเหนือการตั้งค่าแคชอัตโนมัติ
การทำงาน
- รอให้เสร็จ: ไม่
- ความปลอดภัยเมื่อทำงานพร้อมกัน: ทำงานตามลำดับ
- การทำงานแบบขนาน: ขึ้นอยู่กับเงื่อนไข
การควบคุมแคชอัปเดตนโยบายร่วมโดยไม่รอเฟรมหรือครบระยะเวลาที่ตั้ง การจับภาพถัดไปใช้นโยบายนี้ การเปลี่ยนมีผลทุกโฟลว์ใน Run และไม่ขอสิทธิ์จับภาพ
ตัวอย่าง
# ใช้เฟรมที่จับไว้หนึ่งเฟรมซ้ำสำหรับการตรวจหน้าจอหลายครั้ง
ScreenCapture.cache_on()
color = Color.get(Point(500, 900))
hit = Region.full_screen().find("enemy", timeout=0)
ScreenCapture.cache_off()
# ใช้เฟรมล่าสุดที่มีสำหรับการตรวจจับช่วงสั้น
ScreenCapture.auto_cache_off(duration_ms=1000)
hit = Region.full_screen().find("enemy", timeout=800, rate=30)
# ปิดโดยไม่ตั้งเวลา แล้วเรียกเปิดแคชอัตโนมัติอีกครั้ง
ScreenCapture.auto_cache_off()
hit = Region.full_screen().find("enemy", timeout=2000, rate=30)
ScreenCapture.auto_cache_on()
ข้อผิดพลาด / ข้อจำกัด
ไม่มีข้อจำกัดเพิ่มเติมที่ระบุไว้ ให้ปฏิบัติตามพารามิเตอร์และพฤติกรรมข้างต้น
ปักหมุดเฟรมจับภาพหน้าจอจริงถัดไปและใช้ซ้ำจนกว่าจะเรียก ScreenCapture.cache_off() หากยังไม่มีบัฟเฟอร์ใหม่ในคิว ระบบจะปักหมุดเฟรมล่าสุดที่ใช้ได้จากตัวอ่านภาพปัจจุบันแทน โดยไม่ขอสิทธิ์จับภาพหน้าจอเพิ่มเติม
ค่าที่ส่งกลับ
None — ไม่มีค่าส่งคืน
พฤติกรรม / ผลข้างเคียง
ปักหมุดเฟรมจับภาพหน้าจอจริงถัดไปและใช้ซ้ำจนกว่าจะเรียก ScreenCapture.cache_off() หากยังไม่มีบัฟเฟอร์ใหม่ในคิว ระบบจะปักหมุดเฟรมล่าสุดที่ใช้ได้จากตัวอ่านภาพปัจจุบันแทน โดยไม่ขอสิทธิ์จับภาพหน้าจอเพิ่มเติม
การทำงาน
- รอให้เสร็จ: ไม่
- ความปลอดภัยเมื่อทำงานพร้อมกัน: ทำงานตามลำดับ
- การทำงานแบบขนาน: ขึ้นอยู่กับเงื่อนไข
การควบคุมแคชอัปเดตนโยบายร่วมโดยไม่รอเฟรมหรือครบระยะเวลาที่ตั้ง การจับภาพถัดไปใช้นโยบายนี้ การเปลี่ยนมีผลทุกโฟลว์ใน Run และไม่ขอสิทธิ์จับภาพ
ตัวอย่าง
# ตรึงเฟรมร่วมหนึ่งเฟรมสำหรับการตรวจจับสองรอบ
ScreenCapture.cache_on()
region = Region(100, 200, 300, 400)
first = region.find("start", 0)
second = region.find("confirm", 0)
ScreenCapture.cache_off()
print(first.found, second.found)
ข้อผิดพลาด / ข้อจำกัด
ไม่มีข้อจำกัดเพิ่มเติมที่ระบุไว้ ให้ปฏิบัติตามพารามิเตอร์และพฤติกรรมข้างต้น
เลิกปักหมุดเฟรมจับภาพหน้าจอโดยไม่เปลี่ยนการตั้งค่าแคชอัตโนมัติ หากเปิดแคชอัตโนมัติอยู่ ยังสามารถใช้เฟรมล่าสุดซ้ำได้ เมื่อต้องการเฟรมล่าสุดที่มีสำหรับการตรวจจับ ให้เรียก auto_cache_off() เพิ่มด้วย
รูปแบบคำสั่ง
ScreenCapture.cache_off()
ค่าที่ส่งกลับ
None — ไม่มีค่าส่งคืน
พฤติกรรม / ผลข้างเคียง
เลิกปักหมุดเฟรมจับภาพหน้าจอโดยไม่เปลี่ยนการตั้งค่าแคชอัตโนมัติ หากเปิดแคชอัตโนมัติอยู่ ยังสามารถใช้เฟรมล่าสุดซ้ำได้ เมื่อต้องการเฟรมล่าสุดที่มีสำหรับการตรวจจับ ให้เรียก auto_cache_off() เพิ่มด้วย
การทำงาน
- รอให้เสร็จ: ไม่
- ความปลอดภัยเมื่อทำงานพร้อมกัน: ทำงานตามลำดับ
- การทำงานแบบขนาน: ขึ้นอยู่กับเงื่อนไข
การควบคุมแคชอัปเดตนโยบายร่วมโดยไม่รอเฟรมหรือครบระยะเวลาที่ตั้ง การจับภาพถัดไปใช้นโยบายนี้ การเปลี่ยนมีผลทุกโฟลว์ใน Run และไม่ขอสิทธิ์จับภาพ
ตัวอย่าง
# ยกเลิกการตรึงเฟรมก่อนสแกนครั้งถัดไป
ScreenCapture.cache_off()
region = Region(100, 200, 300, 400)
print(region.find("start", 0).found)
ข้อผิดพลาด / ข้อจำกัด
ไม่มีข้อจำกัดเพิ่มเติมที่ระบุไว้ ให้ปฏิบัติตามพารามิเตอร์และพฤติกรรมข้างต้น
ScreenCapture.auto_cache_off
Static Method
ปิดการใช้เฟรมซ้ำโดยตั้งใจจากแคชอัตโนมัติเป็นเวลา duration_ms มิลลิวินาทีนับจากการเรียกนี้ หากละไว้หรือระบุ None จะปิดจนกว่าจะเรียก auto_cache_on() หรือจบการรันมาโคร การเรียกซ้ำจะแทนที่ระยะเวลาเดิม มีผลต่อการจับภาพร่วมกันแบบ bitmap, เฟรมดิบ, TFLite และพิกเซล ข้ามการใช้เฟรมซ้ำตาม TTL แต่การรับเฟรมยังมีเวลาจำกัด และไม่สามารถบังคับให้ Android วาดพิกเซลใหม่ได้ ไม่เลิกปักหมุดจาก cache_on() ไม่ขอสิทธิ์จับภาพ และไม่รอจนหมดเวลาที่กำหนด
รูปแบบคำสั่ง
ScreenCapture.auto_cache_off(duration_ms=None)
ค่าที่ส่งกลับ
None — ไม่มีค่าส่งคืน
พฤติกรรม / ผลข้างเคียง
ปิดการใช้เฟรมซ้ำโดยตั้งใจจากแคชอัตโนมัติเป็นเวลา duration_ms มิลลิวินาทีนับจากการเรียกนี้ หากละไว้หรือระบุ None จะปิดจนกว่าจะเรียก auto_cache_on() หรือจบการรันมาโคร การเรียกซ้ำจะแทนที่ระยะเวลาเดิม มีผลต่อการจับภาพร่วมกันแบบ bitmap, เฟรมดิบ, TFLite และพิกเซล ข้ามการใช้เฟรมซ้ำตาม TTL แต่การรับเฟรมยังมีเวลาจำกัด และไม่สามารถบังคับให้ Android วาดพิกเซลใหม่ได้ ไม่เลิกปักหมุดจาก cache_on() ไม่ขอสิทธิ์จับภาพ และไม่รอจนหมดเวลาที่กำหนด
การทำงาน
- รอให้เสร็จ: ไม่
- ความปลอดภัยเมื่อทำงานพร้อมกัน: ทำงานตามลำดับ
- การทำงานแบบขนาน: ขึ้นอยู่กับเงื่อนไข
การควบคุมแคชอัปเดตนโยบายร่วมโดยไม่รอเฟรมหรือครบระยะเวลาที่ตั้ง การจับภาพถัดไปใช้นโยบายนี้ การเปลี่ยนมีผลทุกโฟลว์ใน Run และไม่ขอสิทธิ์จับภาพ
ตัวอย่าง
# ข้ามแคชอัตโนมัติชั่วคราว การตรึงเฟรมเป็นอีกการตั้งค่าหนึ่ง
ScreenCapture.cache_off()
ScreenCapture.auto_cache_off(1000)
region = Region(100, 200, 300, 400)
print(region.find("start", 500).found)
ScreenCapture.auto_cache_on()
ข้อผิดพลาด / ข้อจำกัด
ไม่มีข้อจำกัดเพิ่มเติมที่ระบุไว้ ให้ปฏิบัติตามพารามิเตอร์และพฤติกรรมข้างต้น
ScreenCapture.auto_cache_on
Static Method
เปิดแคชเฟรมอัตโนมัติตามปกติทันทีและยกเลิกการปิดทั้งแบบกำหนดเวลาและไม่จำกัดเวลา ไม่เลิกปักหมุดจาก cache_on() ไม่ขอสิทธิ์จับภาพ และไม่รอ แคชอัตโนมัติจะกลับมาเปิดเมื่อจบการรันมาโครด้วย
รูปแบบคำสั่ง
ScreenCapture.auto_cache_on()
ค่าที่ส่งกลับ
None — ไม่มีค่าส่งคืน
พฤติกรรม / ผลข้างเคียง
เปิดแคชเฟรมอัตโนมัติตามปกติทันทีและยกเลิกการปิดทั้งแบบกำหนดเวลาและไม่จำกัดเวลา ไม่เลิกปักหมุดจาก cache_on() ไม่ขอสิทธิ์จับภาพ และไม่รอ แคชอัตโนมัติจะกลับมาเปิดเมื่อจบการรันมาโครด้วย
การทำงาน
- รอให้เสร็จ: ไม่
- ความปลอดภัยเมื่อทำงานพร้อมกัน: ทำงานตามลำดับ
- การทำงานแบบขนาน: ขึ้นอยู่กับเงื่อนไข
การควบคุมแคชอัปเดตนโยบายร่วมโดยไม่รอเฟรมหรือครบระยะเวลาที่ตั้ง การจับภาพถัดไปใช้นโยบายนี้ การเปลี่ยนมีผลทุกโฟลว์ใน Run และไม่ขอสิทธิ์จับภาพ
ตัวอย่าง
# คืนค่าการใช้เฟรมซ้ำอัตโนมัติตามปกติ
ScreenCapture.auto_cache_on()
region = Region(100, 200, 300, 400)
print(region.find("start", 0).found)
ข้อผิดพลาด / ข้อจำกัด
ไม่มีข้อจำกัดเพิ่มเติมที่ระบุไว้ ให้ปฏิบัติตามพารามิเตอร์และพฤติกรรมข้างต้น