The detailed options of the user role, including user level.
The user level determines the level of services that a user can enjoy within the permissions of the user's role. For example, an audience can choose to receive remote streams with low latency or ultra low latency. Levels affect prices.
The codec that the Web browser uses for encoding.
"vp8": Use VP8 for encoding.
"h264": Use H.264 for encoding.
"h265": Use H.265 for encoding.
"vp9": (Beta) Use VP9 for encoding.
Safari 12.1 or earlier does not support the VP8 codec.
The channel profile.
The SDK differentiates channel profiles and applies different optimization algorithms accordingly. For example, it prioritizes smoothness and low latency for a video call, and prioritizes video quality for a video streaming.
The SDK supports the following channel profiles:
"live": Sets the channel profile as live streaming. You need to go on to call setClientRole to set the client as either a host or an audience. A host can send and receive audio or video, while an audience can only receive audio or video.
"rtc": Sets the channel profile as communication. It is used for a one-on-one call or a group call where all users in the channel can converse freely.
The user role in a live interactive streaming (when mode is
The user role determines the permissions that the SDK grants to a user, such as permission to publish local streams, subscribe to remote streams, and push streams to a CDN address. You can set the user role as
"audience". A host can publish and subscribe to tracks, while an audience member can only subscribe to tracks. The default role in a live streaming is
"audience". Before publishing tracks, you must set the user role as
After creating a client, you can call setClientRole to switch the user role.