Frequently Asked

This page lists down frequently asked questions. If you want to add a new question or edit an older one, feel free to send us a PR.

What does HMS stand for in the SDK name?

Hundred(100) Milli Seconds 😊. Why?

Can I listen to webhooks on server side?

Yes, please check webhooks.

How do I record a room?

We have two types of recordings available, SFU and Browser. You can also start the latter from the SDK.

How do I debug blank video tile while rendering?

Start with making sure that attach video is being called for the correct track and video element. Also ensure that there is no bug leading to detach call just after or around the same time as attach. These calls when done will also show up in the redux devtools extension. Some things we have seen in the past -

  • The role was not subscribed properly in the dashboard's templates section
  • [React] Calling detach as a cleanup function of the same useEffect which calls attach and has video track as dependency. Instead of this please have a separate useEffect with no dependencies to call detach on component unmount.
  • [React] Not using the key field properly while rendering the list of components displaying the track. This should ideally be the trackId or peerId-trackType, where track type is video or screen.
  • [Angular] Not using the trackBy field properly while rendering the list of components displaying the track. This should ideally be the trackId or peerId-trackType, where track type is video or screen.

Why is the video not autoplaying on page load?

For the video to autoplay please make sure these fields are set on the video element - autoplay, muted, playsinline. Please check the docs for render video for more details.

(Angular) Why is video not autoplaying even though muted is set as true?

Angular 2+ is sometimes not able to translate the muted field correctly. Instead of setting the muted and autoplay property as <video muted> doing <video [muted]="true"> should work. Please check this stackoverflow answer for more details.

How do I debug no audio coming in the room?

  • Check that the role is being subscribed to properly in dashboard's templates section.

  • If your webapp doesn't require a user click to join the room, you might run into autoplay issues. Browsers don't allow a website to play audio if user hasn't interacted with the page till that point in time. Fortunately, we have inbuilt support to detect and resolve this given in more details here.

  • If you're using the setVolume API, it's possible that even though the audio is available it has been locally muted.

Is it possible to do RTMP out, live stream a room to YouTube, Twitch, Wowza?

Yes, you can achieve it both from server-side APIs or SDK.

What should I do to hide the beam tile showing up in 100ms webapp for browser based recording/streaming?

You can use a viewer role which doesn't have any publish permissions.

How do I make the beam bot join with a custom role for dashboard webapp?

You can append a query param in the end of the url for the custom role - <custom_role_url>?skip_preview=true. This will tell the webapp to skip preview screen and join directly.

You can safely ignore this, this will happen if there is no activity happening on the url being streamed. For e.g., there is nobody in the room with their video turned on.

Can I get HLS out for a room?

Not yet, but we're working on this.

How do I join an API created room from dashboard webapp?

You won't see the join room button on the dashboard, but it's possible to form an url which you can use. The format is https://<subdomain>.app.100ms.live/preview/<room_id>/<role>, e.g. https://myroomlink.app.100ms.live/preview/123456/teacher. All of these, the subdomain, room_id and role are available on the dashboard.

Do I need to do anything to handle poor internet connection?

Not much, just turn on a flag in dashboard, and show a proper UI when a video gets degraded/unsubscribed. More details here.

Can I store extra information with a peer?

Yes you can store peer metadata for a peer. The initial value can be provided at the time of join, and can be modified post join.

How do I implement Raise Hand?

You can do using peer metadata.

Why do I see videos getting stuck or frozen?

If you have enabled subscribe degradation from the dashboard, the sdk might go in the degradation mode on poor internet connection turning off some videos to ensure good call quality. When this is done, a flag on the track will be turned on to let the UI know. The UI should treat it similar to the track turning off for purpose of displaying avatar etc. More details here.

Do you have UI components?

Not yet, but it's work in progress for react. Do let us know on discord if you want to sign up for beta and we'll hit you up soon.

Can I use the SDK with NextJS, Angular, Svelte, VueJS etc.?

Yes, the core sdk is framework agnostic, you can follow the JS Quickstart to learn the basics. The quickstart guide is with vanilla js and doesn't assume any framework.

I want to suggest a new feature.

Awesome, we're always on the lookout for new ideas and feature. Please reach out to us over discord.

I'm facing an issue, how do I reach out?

Please see reaching out.

Can I create room using API?

Yes.

Can I disable a room?

Yes. You can also do this while ending the room using the sdk.

Is it possible to create and manage roles using APIs?

Yes.

Does the SDK remembers input/output device selection for future joins?

Yes, just make sure you pass the rememberDeviceSelection as true in the join config.

Can I implement custom events to broadcast or sent to a specific person in the room?

Yes, you can do so using our messaging system.

How can I access the user id field used while creating the token after joining?

It will be available as peer.customerUserId for any peer in the room.

How can I implement break out rooms?

This can be done using roles.

Can I locally mute a remote audio track?

Yes.

Can I process video before sending over to others in the room?

Yes, you can write custom video plugins.

How to disable console logs if I'm using the web SDK?

Please follow setting log level.