INTEGRITY Dokumentace

Vytvoření vlastní nahrávací aplikace pomocí Recording SDK

Když se připojíte ke schůzce RealtimeKit, rozvržení schůzky se automaticky navrhne tak, aby optimalizovalo váš zážitek. To zahrnuje zaměření na sdílený obsah a zvýraznění aktivních mluvčích, zatímco ostatní účastníci se zobrazují v malých náhledech. Když spustíte nahrávání schůzky, nahraje se se stejným rozvržením pomocí výchozí komponenty UI Kit s názvem RtkGrid.

Pokud chcete mít pro svou nahrávací aplikaci přizpůsobené rozvržení, vlastní nahrávací SDK RealtimeKit vám umožňují upravit vzhled nahrávek podle vašich preferencí. Můžete si vybrat například z těchto možností:

Jak funguje rekordér

Když zavoláte Spustit nahrávání, RealtimeKit spustí Cloudflare kontejner, otevře v něm prohlížeč Chrome a načte adresu URL aplikace pro záznam. Pokud vlastní adresu URL nezadáte v url parametr, použije se interní aplikace RealtimeKit pro záznam.

Parametry URL

Než se vaše vlastní nahrávací aplikace načte v prohlížeči Chrome, RealtimeKit k ní připojí authToken a config query parametry k URL. Pokud například tuto URL uvedete v Spustit nahrávání API:

https://example.com/my-custom-recorder

RealtimeKit načte aplikaci s následujícími parametry:

https://example.com/my-custom-recorder?authToken=AUTH_TOKEN_CREATED_BY_REALTIMEKIT&config=CONFIG_CREATED_BY_REALTIMEKIT

Zástupné hodnoty představují parametry poskytnuté nástrojem RealtimeKit. Nepřidávejte authToken nebo config sami do adresy URL odeslané do rozhraní Start Recording API. Vaše aplikace musí z této adresy URL přečíst oba parametry.

Autentizační token

RealtimeKit generuje authToken automaticky pro schůzku, jejíž nahrávání spouštíte. Tento token generuje pomocí recorder_preset_v2 preset. Pokud jste nevytvořili recorder_preset_v2 preset, RealtimeKit použije globální preset se stejným názvem, který spravuje RealtimeKit a který není ve vašem účtu viditelný.

Vaše vlastní nahrávací aplikace musí přijmout tento authToken a použijte ji k inicializaci RealtimeKit SDK, abyste získali meeting objekt.

Parametr Config

Veškerá konfigurace, kterou zadáte v Start Recording API, například nastavení vodoznaku, se do nahrávací aplikace předává prostřednictvím config query parametr. Výchozí nahrávací aplikace tuto konfiguraci automaticky načte a použije.

Pokud používáte vlastní nahrávací aplikaci, odpovídáte za načtení a použití config. Cokoli vaše aplikace vytvoří v prohlížeči, se nahraje tak, jak je. RealtimeKit na výstup vlastní nahrávací aplikace neaplikuje žádné další rozvržení, vodoznak ani jiné zpracování.

Příznaky presetu nahrávání

hidden_participant příznak řídí pouze viditelnost rekordéru. Pokud je zapnutý, skryje rekordér před ostatními účastníky schůzky.

is_recorder příznak označuje účastníka jako rekordér a zajišťuje, že nahrávání funguje správně. Pokud vytváříte vlastní recorder_preset_v2 preset pro úpravu barev nebo vzhledu nahrávky, musíte zachovat is_recorder povoleno. Odebrání is_recorder může způsobit selhání nahrávání. Odebrání hidden_participant může způsobit, že bude nahrávač viditelný pro ostatní účastníky.

Lokální testování

Lokální testování vám umožňuje zobrazit uživatelské rozhraní aplikace pro nahrávání. Otevřením adresy URL aplikace pro nahrávání přímo na vašem lokálním počítači se nahrávání nespustí.

Pouze pro místní testování vytvořte libovolný preset s hidden_participant: true, pak předejte autentizační token vytvořený s tímto přednastavením v authToken query parametr při otevírání URL lokální nahrávací aplikace. Tím se zobrazí vzhled uživatelského rozhraní rekordéru. Testovací token pro lokální testování nepoužívejte jako authToken v URL adrese odeslané do rozhraní Start Recording API. Při skutečném nahrávání RealtimeKit vygeneruje a předá token nahrávání automaticky.

Chcete-li urychlit vývoj, použijte Cloudflare Tunnel a zpřístupnit tak vaši místní nahrávací aplikaci. Pokud vaše aplikace například běží na portu 1111, spusťte Quick Tunnel s:

cloudflared tunnel --url http://localhost:1111

Nahraďte 1111 s portem, který používá vaše lokální aplikace. cloudflared vypíše veřejný trycloudflare.com URL. Tuto URL můžete použít jako vlastní URL nahrávací aplikace při spuštění nahrávání, aby kontejner Cloudflare mohl načíst vaši lokální aplikaci.

Při lokálním testování se v konzoli prohlížeče může objevit chyba WebSocket, protože se prohlížeč nemůže připojit k localhost:8080. Tuto chybu můžete během lokálního testování ignorovat. Rekordér běží s tímto portem uvnitř hostitelského kontejneru Cloudflare a připojení WebSocket slouží k tomu, aby nahrávací aplikace řekla kontejneru, aby zaznamenal vykreslenou webovou stránku.

Příklady

Viz příklady aplikací využívajících nahrávací SDK ukázkové implementace, včetně příklad nahrávání s vodoznakem.

Referenční dokumentace k Recording SDK

Vlastní SDK pro nahrávání se používají nad rámec UI Kit nebo Core SDK. @cloudflare/realtimekit-recording-sdk balíček poskytuje RealtimeKitRecording třída pro správu funkcí nahrávání.

Konstruktor

constructor(options)

Vytvoří instanci RealtimeKitRecording třídu.

Parametry konstruktoru

options (object): Objekt options. Všechny možnosti konstruktoru jsou volitelné. Pokud některou možnost vynecháte, RealtimeKit použije její výchozí hodnotu.

options (object) Popis
options.waitTimeMs (number) Doba (v milisekundách), po kterou se čeká po odchodu všech peerů, než se nahrávání zastaví. Tato možnost platí, když autoStop je nastaveno na true.
options.autoStart (boolean) Výchozí hodnota je true, takže nahrávání se automaticky spustí, jakmile init() je volána. Nastavte ji na false pouze pokud chcete spustit nahrávání ručně pomocí startRecording(). Když je nastaveno na false, musíte zavolat startRecording() do 2 minut od navázání WebSocket připojení, jinak dojde k chybě v procesu nahrávání.
options.autoStop (boolean) Výchozí hodnota je true, takže se nahrávání automaticky zastaví poté, co všichni účastníci opustí schůzku. Nastavte na false pouze pokud chcete zastavit nahrávání ručně pomocí stopRecording().
options.scanInterval (number) Interval (v milisekundách) mezi kontrolami automatického odchodu peeru.
options.devMode (boolean) Nastavením hodnoty na true povolíte vývojový režim, který zapíná protokoly a vypíná některé funkce. Zároveň musíte zajistit, aby byla tato hodnota nastavena na true i při místním testování vaší recording-app.

Metody

init(client: RealtimeKitClient)

Inicializuje SDK poskytnutím RealtimeKitClient. Zavolejte ji po vytvoření objektu schůzky a před voláním meeting.joinRoom().

startRecording();

Ve většině případů ponechte autoStart nastaveno na true (výchozí hodnota), aby se nahrávání spouštělo automaticky. Chcete-li nahrávání spustit ručně, nastavte autoStart na false v možnostech konstruktoru před voláním této metody.

stopRecording();

Tuto metodu obvykle nemusíte volat, protože autoStop má výchozí hodnotu true. Chcete-li nahrávání zastavit ručně, nastavte autoStop na false v možnostech konstruktoru před voláním této metody.

cleanup();

Po opuštění schůzky provede úklidové úkony, jako je odstranění přidaných posluchačů a uzavření WebSocket připojení.

Vytvoření vlastní nahrávací aplikace

Chcete-li vytvořit nahrávací aplikaci pro schůzky RealtimeKit, postupujte podle následujících kroků.

Krok 1: Instalace SDK

npm i @cloudflare/realtimekit-recording-sdk

Krok 2: Importujte RealtimeKitRecording objekt

import { RealtimeKitRecording } from "@cloudflare/realtimekit-recording-sdk";

Krok 3: Vytvořte RealtimeKitRecording objekt

const recordingSdk = new RealtimeKitRecording(options);

Krok 4: Inicializace nahrávacího SDK

Zavolejte init po vytvoření objektu meeting a před joinRoom je volána.

// Call this after you have initialized the RealtimeKit SDK and have the meeting object
await recordingSdk.init(meeting);

(Volitelné) Krok 5: Ruční spuštění záznamu

Chcete-li nahrávání spustit ručně, nastavte autoStart na false v RealtimeKitRecording možnosti konstruktoru. Poté zavolejte startRecording() poté, co načtete svůj obsah UI a jste připraveni zahájit nahrávání.

await recordingSdk.startRecording();

(Volitelné) Krok 6: Ruční zastavení záznamu

Chcete-li nahrávání zastavit ručně, nastavte autoStop na false v RealtimeKitRecording možnosti konstruktoru. Poté zavolejte stopRecording() až budete připraveni ukončit nahrávání.

await recordingSdk.stopRecording();

Jakmile stopRecording je volána, nahrávač ve vaší nahrávací aplikaci se po několika sekundách ukončí. Od tohoto okamžiku již nebudete moci ve své nahrávací aplikaci provádět žádné další akce.

Krok 7: Nasazení nahrávací aplikace

Jakmile aplikaci vytvoříte, nasaďte ji pomocí platformy, jako je Cloudflare Workers. Nezapomeňte si poznamenat URL, na které jste aplikaci nasadili, protože ji budete muset zadat do nahrávacího API RealtimeKit.

Krok 8: Zadání vlastní adresy URL

V Zahájení nahrávání schůzky API zadejte vlastní URL (získanou v předchozím kroku), která určuje umístění vaší nasazené aplikace. Nepřidávejte na konec authToken k této adrese URL. RealtimeKit přidá vygenerovaný authToken a config parametry při načítání aplikace.