Kamera tasvirga olish (agent)¶
OpenClaw agent ish jarayonlari uchun kamera tasvirga olishni qo‘llab-quvvatlaydi:
- iOS tuguni (Gateway orqali ulangan):
node.invokeorqali fotosurat (jpg) yoki qisqa video rolik (mp4, ixtiyoriy audio bilan) olish. - Android tuguni (Gateway orqali ulangan):
node.invokeorqali fotosurat (jpg) yoki qisqa video rolik (mp4, ixtiyoriy audio bilan) olish. - macOS ilovasi (Gateway orqali tugun):
node.invokeorqali fotosurat (jpg) yoki qisqa video rolik (mp4, ixtiyoriy audio bilan) olish.
Barcha kamera kirishlari foydalanuvchi boshqaradigan sozlamalar orqali nazorat qilinadi.
iOS tuguni¶
Foydalanuvchi sozlamasi (standart yoqilgan)¶
- iOS Settings yorlig‘i → Camera → Allow Camera (
camera.enabled) - Standart: yoqilgan (kalit mavjud bo‘lmasa ham yoqilgan deb hisoblanadi).
- O‘chirilganda:
camera.*buyruqlariCAMERA_DISABLEDqaytaradi.
Buyruqlar (Gateway orqali node.invoke)¶
camera.list-
Javob payload:
devices:{ id, name, position, deviceType }obyektlar massivi
-
camera.snap - Parametrlar:
facing:front|back(standart:front)maxWidth: son (ixtiyoriy; iOS tugunida standart1600)quality:0..1(ixtiyoriy; standart0.9)format: hozirchajpgdelayMs: son (ixtiyoriy; standart0)deviceId: satr (ixtiyoriy;camera.listdan)
- Javob payload:
format: "jpg"base64: "<...>"width,height
-
Payload himoyasi: fotosuratlar base64 payload hajmi 5 MB dan oshmasligi uchun qayta siqiladi.
-
camera.clip - Parametrlar:
facing:front|back(standart:front)durationMs: son (standart3000, maksimal60000gacha cheklanadi)includeAudio: boolean (standarttrue)format: hozirchamp4deviceId: satr (ixtiyoriy;camera.listdan)
- Javob payload:
format: "mp4"base64: "<...>"durationMshasAudio
Old fon talabi¶
canvas.* kabi, iOS tuguni camera.* buyruqlariga faqat old fon holatida ruxsat beradi. Orqa fondagi chaqiruvlar NODE_BACKGROUND_UNAVAILABLE qaytaradi.
CLI yordamchisi (vaqtinchalik fayllar + MEDIA)¶
Biriktirmalarni olishning eng oson yo‘li — dekodlangan mediani vaqtinchalik faylga yozib, MEDIA:<path> chiqaradigan CLI yordamchisidan foydalanish.
Misollar:
openclaw nodes camera snap --node <id> # standart: front + back (2 ta MEDIA qatori)
openclaw nodes camera snap --node <id> --facing front
openclaw nodes camera clip --node <id> --duration 3000
openclaw nodes camera clip --node <id> --no-audio
Eslatmalar:
nodes camera snapstandart bo‘yicha agentga ikkala ko‘rinishni berish uchun ikkala tomonni suratga oladi.- Agar o‘zingizning wrapper’ingizni yaratmasangiz, chiqish fayllari vaqtinchalik (OT vaqtinchalik katalogida) bo‘ladi.
Android tuguni¶
Android foydalanuvchi sozlamasi (standart yoqilgan)¶
- Android Settings oynasi → Camera → Allow Camera (
camera.enabled) - Standart: yoqilgan (kalit mavjud bo‘lmasa ham yoqilgan deb hisoblanadi).
- O‘chirilganda:
camera.*buyruqlariCAMERA_DISABLEDqaytaradi.
Ruxsatlar¶
- Android ish vaqtida ruxsatlarni talab qiladi:
CAMERA—camera.snapvacamera.clipuchun.RECORD_AUDIO—camera.clipdaincludeAudio=truebo‘lsa.
Agar ruxsatlar mavjud bo‘lmasa, ilova imkon qadar so‘rov yuboradi; rad etilsa, camera.* so‘rovlari
*_PERMISSION_REQUIRED xatosi bilan yakunlanadi.
Android old fon talabi¶
canvas.* kabi, Android tuguni ham camera.* buyruqlariga faqat old fon holatida ruxsat beradi. Orqa fondagi chaqiruvlar NODE_BACKGROUND_UNAVAILABLE qaytaradi.
Payload himoyasi¶
Fotosuratlar base64 payload hajmi 5 MB dan oshmasligi uchun qayta siqiladi.
macOS ilovasi¶
Foydalanuvchi sozlamasi (standart o‘chirilgan)¶
macOS hamroh ilovasi quyidagi belgilash katagini taqdim etadi:
- Sozlamalar → Umumiy → Kameraga ruxsat berish (
openclaw.cameraEnabled) - Standart: o‘chirilgan
- O‘chirilgan bo‘lsa: kamera so‘rovlari “Camera disabled by user” qaytaradi.
CLI yordamchisi (node invoke)¶
macOS tugunida kamera buyruqlarini chaqirish uchun asosiy openclaw CLI’dan foydalaning.
Misollar:
openclaw nodes camera list --node <id> # kamera id larini ko‘rsatadi
openclaw nodes camera snap --node <id> # MEDIA:<path> chiqaradi
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 # MEDIA:<path> chiqaradi
openclaw nodes camera clip --node <id> --duration-ms 3000 # MEDIA:<path> chiqaradi (eski flag)
openclaw nodes camera clip --node <id> --device-id <id>
openclaw nodes camera clip --node <id> --no-audio
Eslatmalar:
openclaw nodes camera snapstandart bo‘yicha, agar o‘zgartirilmasa,maxWidth=1600dan foydalanadi.- macOS’da
camera.snapsuratga olishdan oldin qizish/ekspozitsiya barqarorlashishi uchundelayMs(standart 2000ms) kutadi. - Foto payloadlari base64 hajmi 5 MB dan oshmasligi uchun qayta siqiladi.
Xavfsizlik + amaliy cheklovlar¶
- Kamera va mikrofon kirishi odatiy OT ruxsat so‘rovlarini ishga tushiradi (hamda Info.plist’da usage satrlarini talab qiladi).
- Video roliklar tugun payloadi haddan tashqari kattalashib ketmasligi uchun (base64 overhead + xabar cheklovlari) cheklangan (hozircha
<= 60s).
macOS ekran videosi (OT darajasida)¶
Kamera emas, balki ekran videosi uchun macOS hamrohidan foydalaning:
openclaw nodes screen record --node <id> --duration 10s --fps 15 # MEDIA:<path> chiqaradi
Eslatmalar:
- macOS’da Screen Recording ruxsati (TCC) talab qilinadi.