Nodes and media
Kamera yakalama
OpenClaw, aracı iş akışları için kamera yakalamayı destekler:
- iOS düğümü (Gateway üzerinden eşleştirilmiş):
node.invokearacılığıyla bir fotoğraf (jpg) veya kısa video klip (mp4, isteğe bağlı ses ile) yakalayın. - Android düğümü (Gateway üzerinden eşleştirilmiş):
node.invokearacılığıyla bir fotoğraf (jpg) veya kısa video klip (mp4, isteğe bağlı ses ile) yakalayın. - macOS uygulaması (Gateway üzerinden düğüm):
node.invokearacılığıyla bir fotoğraf (jpg) veya kısa video klip (mp4, isteğe bağlı ses ile) yakalayın.
Tüm kamera erişimi kullanıcı denetimli ayarların arkasında korunur.
iOS düğümü
Kullanıcı ayarı (varsayılan açık)
- iOS Settings sekmesi → Kamera → Kameraya İzin Ver (
camera.enabled)- Varsayılan: açık (eksik anahtar etkin olarak değerlendirilir).
- Kapalıyken:
camera.*komutlarıCAMERA_DISABLEDdöndürür.
Komutlar (Gateway node.invoke üzerinden)
-
camera.list- Yanıt yükü:
devices:{ id, name, position, deviceType }dizisi
- Yanıt yükü:
-
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.listkaynağından)
- 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.
- Parametreler:
-
camera.clip- Parametreler:
facing:front|back(varsayılan:front)durationMs: sayı (varsayılan3000, en fazla60000olacak şekilde sınırlandırılır)includeAudio: boolean (varsayılantrue)format: şu andamp4deviceId: string (isteğe bağlı;camera.listkaynağından)
- Yanıt yükü:
format: "mp4"base64: "<...>"durationMshasAudio
- Parametreler:
Ö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ısı
Medya dosyalarını almanın en kolay yolu, kodu çözülmüş medyayı geçici bir dosyaya yazan ve kaydedilen yolu yazdıran CLI yardımcısını kullanmaktır.
Örnekler:
openclaw nodes camera snap --node <id> # varsayılan: hem ön + arka (2 MEDIA satırı)openclaw nodes camera snap --node <id> --facing frontopenclaw nodes camera clip --node <id> --duration 3000openclaw nodes camera clip --node <id> --no-audioNotlar:
nodes camera snap, aracıya iki görünümü de vermek için varsayılan olarak iki yöne de ayarlanır.- Çıktı dosyaları, kendi sarmalayıcınızı oluşturmadığınız sürece geçicidir (İS geçici dizininde).
Android düğümü
Android kullanıcı ayarı (varsayılan açık)
- Android Settings sayfası → Kamera → Kameraya İzin Ver (
camera.enabled)- Varsayılan: açık (eksik anahtar etkin olarak değerlendirilir).
- Kapalıyken:
camera.*komutlarıCAMERA_DISABLEDdöndürür.
İzinler
- Android çalışma zamanı izinleri gerektirir:
- Hem
camera.snaphem decamera.clipiçinCAMERA. includeAudio=trueolduğundacamera.clipiçinRECORD_AUDIO.
- Hem
İzinler eksikse uygulama mümkün olduğunda sorar; 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.
Android komutları (Gateway node.invoke üzerinden)
camera.list- Yanıt yükü:
devices:{ id, name, position, deviceType }dizisi
- Yanıt yükü:
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:
- Settings → General → Kameraya İzin Ver (
openclaw.cameraEnabled)- Varsayılan: kapalı
- Kapalıyken: kamera istekleri "Kamera kullanıcı tarafından devre dışı bırakıldı" döndürür.
CLI yardımcısı (düğüm çağrısı)
macOS düğümünde kamera komutlarını çağırmak için ana openclaw CLI’ını kullanın.
Örnekler:
openclaw nodes camera list --node <id> # kamera kimliklerini listeleopenclaw nodes camera snap --node <id> # kaydedilen yolu yazdırıropenclaw nodes camera snap --node <id> --max-width 1280openclaw nodes camera snap --node <id> --delay-ms 2000openclaw nodes camera snap --node <id> --device-id <id>openclaw nodes camera clip --node <id> --duration 10s # kaydedilen yolu yazdırıropenclaw nodes camera clip --node <id> --duration-ms 3000 # kaydedilen yolu yazdırır (eski bayrak)openclaw nodes camera clip --node <id> --device-id <id>openclaw nodes camera clip --node <id> --no-audioNotlar:
openclaw nodes camera snap, üzerine yazılmadığı sürece varsayılan olarakmaxWidth=1600kullanır.- macOS üzerinde
camera.snap, yakalamadan önce ısınma/pozlama dengelemesinden sonradelayMskadar (varsayılan 2000 ms) bekler. - Fotoğraf yükleri, base64 değerini 5 MB altında tutmak için yeniden sıkıştırılır.
Güvenlik + pratik sınırlar
- Kamera ve mikrofon erişimi, olağan İS izin istemlerini tetikler (ve Info.plist içinde kullanım dizeleri gerektirir).
- Video klipler, aşırı büyük düğüm yüklerini önlemek için sınırlandırılır (şu anda
<= 60s) (base64 ek yükü + ileti sınırları).
macOS ekran videosu (İS düzeyinde)
kamera değil ekran videosu için macOS yardımcı uygulamasını kullanın:
openclaw nodes screen record --node <id> --duration 10s --fps 15 # kaydedilen yolu yazdırırNotlar:
- macOS Screen Recording izni (TCC) gerektirir.