Nodes and media
ثبت تصویر با دوربین
OpenClaw از ثبت تصویر با دوربین برای گردشکارهای عامل پشتیبانی میکند:
- Node iOS (جفتشده از طریق Gateway): ثبت یک عکس (
jpg) یا کلیپ ویدیویی کوتاه (mp4، با صدای اختیاری) از طریقnode.invoke. - Node Android (جفتشده از طریق Gateway): ثبت یک عکس (
jpg) یا کلیپ ویدیویی کوتاه (mp4، با صدای اختیاری) از طریقnode.invoke. - برنامه macOS (Node از طریق Gateway): ثبت یک عکس (
jpg) یا کلیپ ویدیویی کوتاه (mp4، با صدای اختیاری) از طریقnode.invoke.
تمام دسترسیهای دوربین پشت تنظیمات تحت کنترل کاربر قرار دارند.
Node iOS
تنظیم کاربر (بهطور پیشفرض روشن)
- زبانه Settings در iOS → Camera → Allow Camera (
camera.enabled)- پیشفرض: روشن (کلید ناموجود بهعنوان فعال در نظر گرفته میشود).
- وقتی خاموش باشد: فرمانهای
camera.*مقدارCAMERA_DISABLEDرا برمیگردانند.
فرمانها (از طریق Gateway node.invoke)
-
camera.list- بار پاسخ:
devices: آرایهای از{ id, name, position, deviceType }
- بار پاسخ:
-
camera.snap- پارامترها:
facing:front|back(پیشفرض:front)maxWidth: عدد (اختیاری؛ پیشفرض1600روی Node iOS)quality:0..1(اختیاری؛ پیشفرض0.9)format: در حال حاضرjpgdelayMs: عدد (اختیاری؛ پیشفرض0)deviceId: رشته (اختیاری؛ ازcamera.list)
- بار پاسخ:
format: "jpg"base64: "<...>"width,height
- محافظ بار: عکسها دوباره فشرده میشوند تا بار base64 کمتر از ۵ مگابایت بماند.
- پارامترها:
-
camera.clip- پارامترها:
facing:front|back(پیشفرض:front)durationMs: عدد (پیشفرض3000، با سقف حداکثر60000محدود میشود)includeAudio: بولی (پیشفرضtrue)format: در حال حاضرmp4deviceId: رشته (اختیاری؛ ازcamera.list)
- بار پاسخ:
format: "mp4"base64: "<...>"durationMshasAudio
- پارامترها:
الزام پیشزمینه
مانند canvas.*، Node iOS فقط فرمانهای camera.* را در پیشزمینه مجاز میداند. فراخوانیهای پسزمینه NODE_BACKGROUND_UNAVAILABLE را برمیگردانند.
کمککننده CLI (فایلهای موقت + MEDIA)
آسانترین راه برای دریافت پیوستها استفاده از کمککننده CLI است که رسانه رمزگشاییشده را در یک فایل موقت مینویسد و MEDIA:<path> را چاپ میکند.
نمونهها:
openclaw nodes camera snap --node <id> # default: both front + back (2 MEDIA lines)
openclaw nodes camera snap --node <id> --facing front
openclaw nodes camera clip --node <id> --duration 3000
openclaw nodes camera clip --node <id> --no-audio
نکتهها:
nodes camera snapبهطور پیشفرض از هر دو جهت استفاده میکند تا هر دو نما را به عامل بدهد.- فایلهای خروجی موقت هستند (در پوشه موقت سیستمعامل)، مگر اینکه پوشش اختصاصی خودتان را بسازید.
Node Android
تنظیم کاربر Android (بهطور پیشفرض روشن)
- برگه Settings در Android → Camera → Allow Camera (
camera.enabled)- پیشفرض: روشن (کلید ناموجود بهعنوان فعال در نظر گرفته میشود).
- وقتی خاموش باشد: فرمانهای
camera.*مقدارCAMERA_DISABLEDرا برمیگردانند.
مجوزها
- Android به مجوزهای زمان اجرا نیاز دارد:
CAMERAبرای هر دوcamera.snapوcamera.clip.RECORD_AUDIOبرایcamera.clipوقتیincludeAudio=true.
اگر مجوزها موجود نباشند، برنامه در صورت امکان درخواست میدهد؛ اگر رد شوند، درخواستهای camera.* با خطای
*_PERMISSION_REQUIRED شکست میخورند.
الزام پیشزمینه Android
مانند canvas.*، Node Android فقط فرمانهای camera.* را در پیشزمینه مجاز میداند. فراخوانیهای پسزمینه NODE_BACKGROUND_UNAVAILABLE را برمیگردانند.
فرمانهای Android (از طریق Gateway node.invoke)
camera.list- بار پاسخ:
devices: آرایهای از{ id, name, position, deviceType }
- بار پاسخ:
محافظ بار
عکسها دوباره فشرده میشوند تا بار base64 کمتر از ۵ مگابایت بماند.
برنامه macOS
تنظیم کاربر (بهطور پیشفرض خاموش)
برنامه همراه macOS یک چکباکس ارائه میدهد:
- Settings → General → Allow Camera (
openclaw.cameraEnabled)- پیشفرض: خاموش
- وقتی خاموش باشد: درخواستهای دوربین "Camera disabled by user" را برمیگردانند.
کمککننده CLI (فراخوانی Node)
از CLI اصلی openclaw برای فراخوانی فرمانهای دوربین روی Node macOS استفاده کنید.
نمونهها:
openclaw nodes camera list --node <id> # list camera ids
openclaw nodes camera snap --node <id> # prints MEDIA:<path>
openclaw nodes camera snap --node <id> --max-width 1280
openclaw nodes camera snap --node <id> --delay-ms 2000
openclaw nodes camera snap --node <id> --device-id <id>
openclaw nodes camera clip --node <id> --duration 10s # prints MEDIA:<path>
openclaw nodes camera clip --node <id> --duration-ms 3000 # prints MEDIA:<path> (legacy flag)
openclaw nodes camera clip --node <id> --device-id <id>
openclaw nodes camera clip --node <id> --no-audio
نکتهها:
openclaw nodes camera snapبهطور پیشفرض ازmaxWidth=1600استفاده میکند، مگر اینکه بازنویسی شود.- در macOS،
camera.snapپس از گرمشدن/پایدار شدن نوردهی، بهاندازهdelayMs(پیشفرض 2000ms) صبر میکند و سپس ثبت میکند. - بارهای عکس دوباره فشرده میشوند تا base64 کمتر از ۵ مگابایت بماند.
ایمنی + محدودیتهای عملی
- دسترسی به دوربین و میکروفون اعلانهای معمول مجوز سیستمعامل را فعال میکند (و به رشتههای استفاده در Info.plist نیاز دارد).
- کلیپهای ویدیویی محدود شدهاند (در حال حاضر
<= 60s) تا از بارهای بیشازحد بزرگ Node جلوگیری شود (سربار base64 + محدودیتهای پیام).
ویدیوی صفحه macOS (در سطح سیستمعامل)
برای ویدیوی صفحه (نه دوربین)، از همراه macOS استفاده کنید:
openclaw nodes screen record --node <id> --duration 10s --fps 15 # prints MEDIA:<path>
نکتهها:
- به مجوز Screen Recording در macOS نیاز دارد (TCC).