Kamera yakalama (ajan)¶
OpenClaw, ajan iş akışları için kamera yakalamayı destekler:
- iOS düğümü (Gateway üzerinden eşleştirilmiş):
node.invokearacılığıyla fotoğraf (jpg) veya kısa video klip (mp4, isteğe bağlı sesle) yakalama. - Android düğümü (Gateway üzerinden eşleştirilmiş):
node.invokearacılığıyla fotoğraf (jpg) veya kısa video klip (mp4, isteğe bağlı sesle) yakalama. - macOS uygulaması (Gateway üzerinden düğüm):
node.invokearacılığıyla fotoğraf (jpg) veya kısa video klip (mp4, isteğe bağlı sesle) yakalama.
Tüm kamera erişimleri kullanıcı tarafından kontrol edilen ayarlarla sınırlandırılmıştır.
iOS düğümü¶
Kullanıcı ayarı (varsayılan açık)¶
- iOS Ayarlar sekmesi → Kamera → Kameraya İzin Ver (
camera.enabled) - Varsayılan: açık (anahtar yoksa etkin kabul edilir).
- Kapalıyken:
camera.*komutlarıCAMERA_DISABLEDdöndürür.
Komutlar (Gateway üzerinden node.invoke)¶
camera.list-
Yanıt yükü:
devices:{ id, name, position, deviceType }dizisi
-
camera.snap - Parametreler:
facing:front|back(varsayılan:front)maxWidth: sayı (isteğe bağlı; iOS düğümünde varsayılan1600)quality:0..1(isteğe bağlı; varsayılan0.9)format: şu andajpgdelayMs: sayı (isteğe bağlı; varsayılan0)deviceId: string (isteğe bağlı;camera.list’ten)
- Yanıt yükü:
format: "jpg"base64: "<...>"width,height
-
Yük koruması: fotoğraflar, base64 yükünü 5 MB altında tutmak için yeniden sıkıştırılır.
-
camera.clip - Parametreler:
facing:front|back(varsayılan:front)durationMs: sayı (varsayılan3000, en fazla60000ile sınırlandırılır)includeAudio: boolean (varsayılantrue)format: şu andamp4deviceId: string (isteğe bağlı;camera.list’den)
- Yanıt yükü:
format: "mp4"base64: "<...>"durationMshasAudio
Ön planda olma gereksinimi¶
canvas.* gibi, iOS düğümü camera.* komutlarına yalnızca ön planda izin verir. Arka plan çağrıları NODE_BACKGROUND_UNAVAILABLE döndürür.
CLI yardımcı aracı (geçici dosyalar + MEDIA)¶
Ekleri almanın en kolay yolu, çözümlenmiş medyayı geçici bir dosyaya yazan ve MEDIA:<path> yazdıran CLI yardımcı aracını kullanmaktır.
Örnekler:
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
Notlar:
nodes camera snap, ajana her iki görünümü de sağlamak için varsayılan olarak her iki yüzeyi kullanır.- Çıkış dosyaları, kendi sarmalayıcınızı oluşturmadıkça geçicidir (OS geçici dizininde).
Android düğümü¶
Android kullanıcı ayarı (varsayılan açık)¶
- Android Ayarlar sayfası → Kamera → Kameraya İzin Ver (
camera.enabled) - Varsayılan: açık (anahtar yoksa etkin kabul edilir).
- Kapalıyken:
camera.*komutlarıCAMERA_DISABLEDdöndürür.
İzinler¶
- Android çalışma zamanı izinleri gerektirir:
- Hem
camera.snaphem decamera.clipiçinCAMERA. includeAudio=truedurumundacamera.clipiçinRECORD_AUDIO.
İzinler eksikse, uygulama mümkün olduğunda istemde bulunur; reddedilirse, camera.* istekleri
*_PERMISSION_REQUIRED hatasıyla başarısız olur.
Android ön planda olma gereksinimi¶
canvas.* gibi, Android düğümü camera.* komutlarına yalnızca ön planda izin verir. Arka plan çağrıları NODE_BACKGROUND_UNAVAILABLE döndürür.
Yük koruması¶
Fotoğraflar, base64 yükünü 5 MB altında tutmak için yeniden sıkıştırılır.
macOS uygulaması¶
Kullanıcı ayarı (varsayılan kapalı)¶
macOS yardımcı uygulaması bir onay kutusu sunar:
- Ayarlar → Genel → Kameraya İzin Ver (
openclaw.cameraEnabled) - Varsayılan: kapalı
- Kapalıyken: kamera istekleri “Camera disabled by user” döndürür.
CLI yardımcı aracı (düğüm çağırma)¶
macOS düğümünde kamera komutlarını çağırmak için ana openclaw CLI’sını kullanın.
Örnekler:
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
Notlar:
openclaw nodes camera snap, geçersiz kılınmadıkça varsayılan olarakmaxWidth=1600’dir.- macOS’te,
camera.snapçekimden önce ısınma/pozlama dengelenmesinden sonradelayMs(varsayılan 2000 ms) bekler. - Fotoğraf yükleri, base64’ü 5 MB altında tutmak için yeniden sıkıştırılır.
Güvenli kullanım + pratik sınırlar¶
- Kamera ve mikrofon erişimi, olağan OS izin istemlerini tetikler (ve Info.plist’te kullanım dizgeleri gerektirir).
- Video klipler, aşırı büyük düğüm yüklerini önlemek için (şu anda
<= 60s) sınırlandırılmıştır (base64 ek yükü + mesaj sınırları).
macOS ekran videosu (OS düzeyi)¶
Kamera değil, ekran videosu için macOS yardımcı uygulamasını kullanın:
openclaw nodes screen record --node <id> --duration 10s --fps 15 # prints MEDIA:<path>
Notlar:
- macOS Screen Recording izni (TCC) gerektirir.