Documentation
  • Welcome to Odyssey
  • Upload a project
    • Getting Started
    • Set up your project
    • Package for Linux (it's easy)
    • Upload your project
    • Create and publish your space
  • Instant Multiplayer
    • Quickstart
    • Spatial voice & video
      • Add spatial comms to player
      • Huddle
      • Share your screen
    • Avatars
      • Using Avatars
      • Avatar Blueprints
  • Realtime Configurator
    • Quickstart
    • Sketchfab importer
    • Actor importer
    • Level & object configurator
      • Level configurator
      • Object configurator
      • Configurator blueprint API
    • Media importer
      • Vimeo & web panels
      • Dolby.io in-world streams
  • Embed in a website
    • Enable embedding
    • Pass messages to and from Unreal
      • Sending messages to Unreal
      • Receiving messages from Unreal
    • Manage your stream
      • Stream loading states
      • Session states
      • Stream quality settings
      • Dynamic styling
  • Admin
    • Sharing and permissions
    • Subscriptions
    • Purchase stream hours
  • FAQ
    • Our GPUs (Coreweave)
    • Concurrent user limits
    • Vulkan renderer
    • In-world video support on Linux
  • Guides
    • Add the Odyssey plugin
    • Validate your project settings
    • Troubleshoot "Project zip is invalid"
Powered by GitBook
On this page
  • Overview
  • Additional Info
  • Example payload
  1. Embed in a website
  2. Manage your stream

Stream loading states

Overview

If you wish to know more about the stream loading state, or even build your own loading UI, you can watch for MessageChannel event payloads with type == "stream-loading-state". Each will contain a value field with one of the following values:

Note: Percentage is provided to help indicate how far through the loading process each state is

  • play-button-clicked - If you are using our loading screen, the user has selected the "Join" button

  • received-video-frames - Stream has received at least 60 frames or 1MB of video data - 110%

  • ready - Pixel stream player is ready and playing - 100%

  • webrtc-connected - WebRTC is connected to the Unreal Engine game client - 90%

  • webrtc-connecting - WebRTC is connecting to the Unreal Engine game client - 75%

  • unreal-client-started - Unreal Engine game client has started - 50%

  • waiting-for-compute - Waiting for a compute node on which to run the Unreal Engine game client - 25%

Additional Info

There's also the additionalInfo field which is a map of extra contextual information. Here's the possible values:

  • isRefresh: boolean- Informs whether this state change occurred as part of a browser refresh or not.

Example payload

{
  "type": "stream-loading-state",
  "value": "ready"
  "additionalInfo": {
    "isRefresh": false
  }
}

Last updated 1 year ago