İçeriğe atla

Oda ve olaylarOda

Kayıt

Maçları tekrar dosyaları olarak kaydedin ve odanın sizin için tamamladığı kayıtları alın.

Bir kayıt, bir maçı tekrar oynatmak için gereken her şeyi yakalar: stadyum, her girdi ve komut, ve oynatmayı doğrulamak için kontrol noktaları. Kayıtlar ikili .ball2drep dosyalarıdır; bunları readReplay() ile çözün.

Bir kayıt en fazla bir saat ve 30 MB sürebilir. Bir sınıra ulaştığında, stadyum değiştiğinde veya oda kapandığında, oda kaydı sizin için tamamlar ve onRecordingComplete olayına iletir.

startRecording()

yöntem
room.startRecording(): void

Kaydı hemen, herhangi bir aşamada başlatır. Eşzamanlıdır ve bir kayıt sürüyorsa Recording is already active hatasını fırlatır.

JavaScript
room.onGameStart = () => room.startRecording();

stopRecording()

yöntem
room.stopRecording(): Blob | null

Kaydı durdurur ve dosyayı döndürür. Kendinizin durdurduğu bir kayıt yalnızca burada döndürülür: onRecordingComplete olayını tetiklemez veya lastRecording'ı güncellemez.

Döndürür

Blob | nullKaydı bir Blob olarak, ya da hiçbir şey kaydedilmiyorsa null.

JavaScript
import { writeFile } from 'node:fs/promises';

room.onTeamVictory = async () => {
  const blob = room.stopRecording();
  if (blob)
    await writeFile(
      `match-${Date.now()}.ball2drep`,
      Buffer.from(await blob.arrayBuffer()),
    );
};

lastRecording

özellik
room.lastRecording: Blob | null
salt okunur

Odanın kendiliğinden tamamladığı son kayıt; bir sınır, bir stadyum değişikliği veya kapanma nedeniyle. Henüz böyle bir kayıt olmadıysa null. stopRecording() tarafından döndürülen kayıtlar burada saklanmaz.