← Cloudflare Realtime / realtime / realtimekit / recording-guide
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í:
- Zobrazit pouze aktivního řečníka
- Sdílená obrazovka se zobrazením galerie miniatur
- Sdílená obrazovka s velkou miniaturou aktivního řečníka
- Sdílená obrazovka bez aktivního řečníka nebo zobrazení galerie
- Vlastní pozadí pro váš záznam
- Portrétní rozložení a tak dále
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-recorderRealtimeKit 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_REALTIMEKITZá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:1111Nahraď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-sdkKrok 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.