Real-Time Communication (RTC) SDK supports network environment monitoring. You can obtain the network quality through callbacks when network conditions change. You can configure media track specifications based on the callback results to ensure the quality of RTC calls. This topic describes how to monitor the network environment and configure media track specifications.
Overview
The quality of RTC calls can be affected when the network condition is poor. To improve the quality of your calls, we recommend that you perform the following operations on the publishing or subscription end when you detect poor network conditions.
- Adjust video specifications: Lower the specifications of video tracks to reduce bandwidth usage.
- Switch to small tracks: Small tracks have the same aspect ratio as large tracks, but have lower resolutions and bitrates. This helps reduce bandwidth usage.
- Publish only audio tracks: In extreme cases, you can publish only audio tracks to maintain the connection of your calls.
You can use the onNetworkQualityChanged callback to obtain the network quality. Then, perform the preceding operations based on the callback results to improve the quality of your calls.
- (void)onNetworkQualityChanged:(NSString *)uid
upNetworkQuality:(AliRtcNetworkQuality)upQuality
downNetworkQuality:(AliRtcNetworkQuality)downQuality;| Parameter | Type | Description |
| uid | NSString * | The ID of the user whose network quality has changed. If the user ID is empty, it means local, and others means remote. |
| upQuality | AliRtcNetworkQuality | Upstream network quality. |
| downQuality | AliRtcNetworkQuality | The downstream network quality. |
Methods
You can use the following methods to configure the specifications of media tracks. For more information, see AliRtcEngine interface.
setVideoProfile: Set parameters for the video stream.
Parameter description- (void)setVideoProfile:(AliRtcVideoProfile)profile forTrack:(AliRtcVideoTrack)track;Parameter Type Description profile AliRtcVideoProfile The video stream parameters. The default is a camera stream with a resolution of 480*640 and a frame rate of 15. track AliRtcVideoTrack The type of the video track to be set. The default camera stream. configRemoteCameraTrack: specifies whether to subscribe to remote camera streams.
Parameter description- (void)configRemoteCameraTrack:(NSString *)uid preferMaster:(BOOL)master enable:(BOOL)enable;Parameter Type Description uid NSString * The ID of the user. master BOOL YES indicates a subscription to a major stream, and NO indicates a subscription to a minor stream. The default value is to subscribe to a large stream. enable BOOL YES is to subscribe to the remote camera stream, and NO is to stop subscribing to the remote camera stream. The default value is No Subscription. Important When you need to perform operations on streams (such as manual subscription or disabling subscription), you must call subscribe to take effect.configLocalCameraPublish: specifies whether to allow the camera stream to be published.
Parameter description- (void)configLocalCameraPublish:(BOOL)enable;Parameter Type Description enable BOOL YES is allowed to publish camera streams, and NO is not allowed. The default is to allow the camera stream to be published. Important If you manually publish a file, you must call Publish to take effect.