What Problem Does This Solve?
ILCKStreamingFeature abstracts live streaming so multiple backends can coexist:
- LIV cloud streaming (built-in)
- Custom RTMP backends
- Third-party streaming services
When to Use This
Read this if:- Building a custom streaming backend
- Integrating a third-party streaming service
- Understanding how
ULCKServicediscovers streaming providers
ULCKStreamingSubsystem directly.
Interface Definition
Delegates
| Delegate | Signature | Description |
|---|---|---|
OnPairingCodeDelegate | FOnPairingCode(const FString& Code) | New pairing code generated during login |
OnAuthenticatedDelegate | FOnAuthenticated() | User successfully authenticated |
OnStreamStartedDelegate | FOnStreamStarted() | Live stream has started |
OnStreamStoppedDelegate | FOnStreamStopped() | Live stream ended normally |
OnStreamErrorDelegate | FOnStreamError(const FString& Error) | Streaming error occurred |
OnLoggedOutDelegate | FOnLoggedOut() | User logged out or was logged out |
OnStreamingConfigChangedDelegate | FOnStreamingConfigChanged() | Streaming configuration changed remotely |
Methods
Authentication
| Method | Signature | Description |
|---|---|---|
StartLogin | virtual void StartLogin() = 0 | Begin device-code login flow |
CancelLogin | virtual void CancelLogin() = 0 | Cancel in-progress login |
Logout | virtual void Logout() = 0 | Log out and clear credentials |
IsAuthenticated | virtual bool IsAuthenticated() const = 0 | Check if user is authenticated |
Streaming
| Method | Signature | Description |
|---|---|---|
StartStreaming | virtual bool StartStreaming() = 0 | Start the live stream (returns false on failure) |
StopStreaming | virtual void StopStreaming() = 0 | Stop the live stream |
IsStreaming | virtual bool IsStreaming() const = 0 | Check if currently streaming |
IsStartingOrStreaming | virtual bool IsStartingOrStreaming() const | True during startup or active streaming (default: IsStreaming()) |
Platform & Utility
| Method | Signature | Default | Description |
|---|---|---|---|
LaunchHub | virtual void LaunchHub() = 0 | — | Open the LIV Hub companion app |
IsHubInstalled | virtual bool IsHubInstalled() const | true | Check if LIV Hub is installed |
GetStreamingTargetName | virtual FString GetStreamingTargetName() const | "" | Display name of streaming target |
GetLastLogoutReason | virtual FString GetLastLogoutReason() const | "" | Reason for last automatic logout |
GetPriority | virtual int32 GetPriority() const | 0 | Priority when multiple backends registered |
Discovery via Modular Features
The modular feature name is"LCKStreamingFeature". Streaming features are discovered at runtime:
Usage Example
Key Takeaways
Modular features — Runtime discovery, no compile-time coupling
Priority system — Multiple backends can coexist, highest priority wins
Delegate-driven — Subscribe to events for async state changes
Auth before stream — Always check
IsAuthenticated() before StartStreaming()Related
- Streaming Subsystem — Blueprint-friendly wrapper
- Streaming Types — Enums and data types
- Packet Sink Interface — Custom transport layer
- Encoder Interface — Video/audio encoding