agora-electron-sdk 4.5.0-dev.1 → 4.5.0-dev.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/CHANGELOG.md +8 -1
  2. package/js/Private/AgoraBase.js +16 -16
  3. package/js/Private/AgoraMediaBase.js +17 -17
  4. package/js/Private/IAgoraRtcEngine.js +1 -1
  5. package/package.json +5 -5
  6. package/scripts/downloadPrebuild.js +17 -0
  7. package/scripts/publishCN/common.sh +19 -0
  8. package/scripts/publishCN/rewrite-dep.sh +22 -0
  9. package/scripts/publishCN/rewrite-example.sh +22 -0
  10. package/scripts/zipBuild.js +25 -0
  11. package/ts/Private/AgoraBase.ts +38 -27
  12. package/ts/Private/AgoraMediaBase.ts +23 -21
  13. package/ts/Private/AgoraMediaPlayerTypes.ts +1 -1
  14. package/ts/Private/IAgoraMediaPlayer.ts +8 -7
  15. package/ts/Private/IAgoraMediaPlayerSource.ts +1 -1
  16. package/ts/Private/IAgoraRtcEngine.ts +90 -38
  17. package/ts/Private/IAgoraRtcEngineEx.ts +11 -1
  18. package/ts/Private/IAudioDeviceManager.ts +11 -2
  19. package/types/Private/AgoraBase.d.ts +38 -27
  20. package/types/Private/AgoraBase.d.ts.map +1 -1
  21. package/types/Private/AgoraMediaBase.d.ts +23 -21
  22. package/types/Private/AgoraMediaBase.d.ts.map +1 -1
  23. package/types/Private/AgoraMediaPlayerTypes.d.ts +1 -1
  24. package/types/Private/IAgoraMediaPlayer.d.ts +8 -7
  25. package/types/Private/IAgoraMediaPlayer.d.ts.map +1 -1
  26. package/types/Private/IAgoraMediaPlayerSource.d.ts +1 -1
  27. package/types/Private/IAgoraRtcEngine.d.ts +90 -38
  28. package/types/Private/IAgoraRtcEngine.d.ts.map +1 -1
  29. package/types/Private/IAgoraRtcEngineEx.d.ts +11 -1
  30. package/types/Private/IAgoraRtcEngineEx.d.ts.map +1 -1
  31. package/types/Private/IAudioDeviceManager.d.ts +11 -2
  32. package/types/Private/IAudioDeviceManager.d.ts.map +1 -1
@@ -106,23 +106,23 @@ export enum VideoSourceType {
106
106
  }
107
107
 
108
108
  /**
109
- * @ignore
109
+ * The audio source type.
110
110
  */
111
111
  export enum AudioSourceType {
112
112
  /**
113
- * @ignore
113
+ * 0: (Default) Microphone.
114
114
  */
115
115
  AudioSourceMicrophone = 0,
116
116
  /**
117
- * @ignore
117
+ * 1: Custom audio stream.
118
118
  */
119
119
  AudioSourceCustom = 1,
120
120
  /**
121
- * @ignore
121
+ * 2: Media player.
122
122
  */
123
123
  AudioSourceMediaPlayer = 2,
124
124
  /**
125
- * @ignore
125
+ * 3: System audio stream captured during screen sharing.
126
126
  */
127
127
  AudioSourceLoopbackRecording = 3,
128
128
  /**
@@ -130,15 +130,15 @@ export enum AudioSourceType {
130
130
  */
131
131
  AudioSourceMixedStream = 4,
132
132
  /**
133
- * @ignore
133
+ * 5: Audio stream from a specified remote user.
134
134
  */
135
135
  AudioSourceRemoteUser = 5,
136
136
  /**
137
- * @ignore
137
+ * 6: Mixed audio streams from all users in the current channel.
138
138
  */
139
139
  AudioSourceRemoteChannel = 6,
140
140
  /**
141
- * @ignore
141
+ * 100: An unknown audio source.
142
142
  */
143
143
  AudioSourceUnknown = 100,
144
144
  }
@@ -536,11 +536,11 @@ export enum VideoPixelFormat {
536
536
  */
537
537
  export enum RenderModeType {
538
538
  /**
539
- * 1: Hidden mode. Uniformly scale the video until one of its dimension fits the boundary (zoomed to fit). One dimension of the video may have clipped contents.
539
+ * 1: Hidden mode. The priority is to fill the window. Any excess video that does not match the window size will be cropped.
540
540
  */
541
541
  RenderModeHidden = 1,
542
542
  /**
543
- * 2: Fit mode. Uniformly scale the video until one of its dimension fits the boundary (zoomed to fit). Areas that are not filled due to disparity in the aspect ratio are filled with black.
543
+ * 2: Fit mode. The priority is to ensure that all video content is displayed. Any areas of the window that are not filled due to the mismatch between video size and window size will be filled with black.
544
544
  */
545
545
  RenderModeFit = 2,
546
546
  /**
@@ -876,27 +876,27 @@ export class Hdr10MetadataInfo {
876
876
  }
877
877
 
878
878
  /**
879
- * @ignore
879
+ * The relative position of alphaBuffer and video frames.
880
880
  */
881
881
  export enum AlphaStitchMode {
882
882
  /**
883
- * @ignore
883
+ * 0: (Default) Only video frame, that is, alphaBuffer is not stitched with the video frame.
884
884
  */
885
885
  NoAlphaStitch = 0,
886
886
  /**
887
- * @ignore
887
+ * 1: alphaBuffer is above the video frame.
888
888
  */
889
889
  AlphaStitchUp = 1,
890
890
  /**
891
- * @ignore
891
+ * 2: alphaBuffer is below the video frame.
892
892
  */
893
893
  AlphaStitchBelow = 2,
894
894
  /**
895
- * @ignore
895
+ * 3: alphaBuffer is to the left of the video frame.
896
896
  */
897
897
  AlphaStitchLeft = 3,
898
898
  /**
899
- * @ignore
899
+ * 4: alphaBuffer is to the right of the video frame.
900
900
  */
901
901
  AlphaStitchRight = 4,
902
902
  }
@@ -1032,7 +1032,7 @@ export class ExternalVideoFrame {
1032
1032
  */
1033
1033
  hdr10MetadataInfo?: Hdr10MetadataInfo;
1034
1034
  /**
1035
- * @ignore
1035
+ * By default, the color space properties of video frames will apply the Full Range and BT.709 standard configurations. You can configure the settings according your needs for custom video capturing and rendering.
1036
1036
  */
1037
1037
  colorSpace?: ColorSpace;
1038
1038
  }
@@ -1130,7 +1130,7 @@ export class VideoFrame {
1130
1130
  */
1131
1131
  hdr10MetadataInfo?: Hdr10MetadataInfo;
1132
1132
  /**
1133
- * @ignore
1133
+ * By default, the color space properties of video frames will apply the Full Range and BT.709 standard configurations. You can configure the settings according your needs for custom video capturing and rendering.
1134
1134
  */
1135
1135
  colorSpace?: ColorSpace;
1136
1136
  }
@@ -1178,15 +1178,17 @@ export enum VideoModulePosition {
1178
1178
  }
1179
1179
 
1180
1180
  /**
1181
- * @ignore
1181
+ * The snapshot configuration.
1182
1182
  */
1183
1183
  export class SnapshotConfig {
1184
1184
  /**
1185
- * @ignore
1185
+ * The local path (including filename extensions) of the snapshot. For example:
1186
+ * Windows: C:\Users\<user_name>\AppData\Local\Agora\<process_name>\example.jpg
1187
+ * macOS: ~/Library/Logs/example.jpg Ensure that the path you specify exists and is writable.
1186
1188
  */
1187
1189
  filePath?: string;
1188
1190
  /**
1189
- * @ignore
1191
+ * The position of the snapshot video frame in the video pipeline. See VideoModulePosition.
1190
1192
  */
1191
1193
  position?: VideoModulePosition;
1192
1194
  }
@@ -439,7 +439,7 @@ export class MediaSource {
439
439
  */
440
440
  startPos?: number;
441
441
  /**
442
- * Whether to enable autoplay once the media file is opened: true : (Default) Enables autoplay. false : Disables autoplay. If autoplay is disabled, you need to call the play method to play a media file after it is opened.
442
+ * Whether to enable autoplay once the media file is opened: true : (Default) Yes. false : No. If autoplay is disabled, you need to call the play method to play a media file after it is opened.
443
443
  */
444
444
  autoPlay?: boolean;
445
445
  /**
@@ -154,8 +154,7 @@ export abstract class IMediaPlayer {
154
154
  * @param index The index of the media stream. This parameter must be less than the return value of getStreamCount.
155
155
  *
156
156
  * @returns
157
- * If the call succeeds, returns the detailed information of the media stream. See PlayerStreamInfo.
158
- * If the call fails, returns null.
157
+ * If the call succeeds, returns the detailed information of the media stream. See PlayerStreamInfo. null, if the method call fails.
159
158
  */
160
159
  abstract getStreamInfo(index: number): PlayerStreamInfo;
161
160
 
@@ -179,8 +178,8 @@ export abstract class IMediaPlayer {
179
178
  *
180
179
  * Call this method after calling open.
181
180
  *
182
- * @param speed The playback speed. Agora recommends that you limit this value to a range between 50 and 400, which is defined as follows:
183
- * 50: Half the original speed.
181
+ * @param speed The playback speed. Agora recommends that you set this to a value between 30 and 400, defined as follows:
182
+ * 30: 0.3 times the original speed.
184
183
  * 100: The original speed.
185
184
  * 400: 4 times the original speed.
186
185
  *
@@ -495,7 +494,7 @@ export abstract class IMediaPlayer {
495
494
  *
496
495
  * You can call this method to switch the media resource to be played according to the current network status. For example:
497
496
  * When the network is poor, the media resource to be played is switched to a media resource address with a lower bitrate.
498
- * When the network is good, the media resource to be played is switched to a media resource address with a higher bitrate. After calling this method, if you receive the PlayerEventSwitchComplete event in the onPlayerEvent callback, the switch is successful; If you receive the PlayerEventSwitchError event in the onPlayerEvent callback, the switch fails.
497
+ * When the network is good, the media resource to be played is switched to a media resource address with a higher bitrate. After calling this method, if you receive the onPlayerEvent callback report the PlayerEventSwitchComplete event, the switching is successful. If the switching fails, the SDK will automatically retry 3 times. If it still fails, you will receive the onPlayerEvent callback reporting the PlayerEventSwitchError event indicating an error occurred during media resource switching.
499
498
  * Ensure that you call this method after open.
500
499
  * To ensure normal playback, pay attention to the following when calling this method:
501
500
  * Do not call this method when playback is paused.
@@ -503,7 +502,7 @@ export abstract class IMediaPlayer {
503
502
  * Before switching the media resource, make sure that the playback position does not exceed the total duration of the media resource to be switched.
504
503
  *
505
504
  * @param src The URL of the media resource.
506
- * @param syncPts Whether to synchronize the playback position (ms) before and after the switch: true : Synchronize the playback position before and after the switch. false : (Default) Do not synchronize the playback position before and after the switch. Make sure to set this parameter as false if you need to play live streams, or the switch fails. If you need to play on-demand streams, you can set the value of this parameter according to your scenarios.
505
+ * @param syncPts Whether to synchronize the playback position (ms) before and after the switch: true : Synchronize the playback position before and after the switch. false : (Default) Do not synchronize the playback position before and after the switch.
507
506
  *
508
507
  * @returns
509
508
  * 0: Success.
@@ -514,7 +513,9 @@ export abstract class IMediaPlayer {
514
513
  /**
515
514
  * Preloads a media resource.
516
515
  *
517
- * You can call this method to preload a media resource into the playlist. If you need to preload multiple media resources, you can call this method multiple times. After calling this method, if you receive the PlayerPreloadEventComplete event in the onPreloadEvent callback, the preload is successful; If you receive the PlayerPreloadEventError event in the onPreloadEvent callback, the preload fails. If the preload is successful and you want to play the media resource, call playPreloadedSrc; if you want to clear the playlist, call stop. Agora does not support preloading duplicate media resources to the playlist. However, you can preload the media resources that are being played to the playlist again.
516
+ * You can call this method to preload a media resource into the playlist. If you need to preload multiple media resources, you can call this method multiple times. After calling this method, if you receive the PlayerPreloadEventComplete event in the onPreloadEvent callback, the preload is successful; If you receive the PlayerPreloadEventError event in the onPreloadEvent callback, the preload fails. If the preload is successful and you want to play the media resource, call playPreloadedSrc; if you want to clear the playlist, call stop.
517
+ * Before calling this method, ensure that you have called open or openWithMediaSource to open the media resource successfully.
518
+ * Agora does not support preloading duplicate media resources to the playlist. However, you can preload the media resources that are being played to the playlist again.
518
519
  *
519
520
  * @param src The URL of the media resource.
520
521
  * @param startPos The starting position (ms) for playing after the media resource is preloaded to the playlist. When preloading a live stream, set this parameter to 0.
@@ -42,7 +42,7 @@ export interface IMediaPlayerSourceObserver {
42
42
  *
43
43
  * After calling the seek method, the SDK triggers the callback to report the results of the seek operation.
44
44
  *
45
- * @param eventCode The player events. See MediaPlayerEvent.
45
+ * @param eventCode The player event. See MediaPlayerEvent.
46
46
  * @param elapsedTime The time (ms) when the event occurs.
47
47
  * @param message Information about the event.
48
48
  */
@@ -1179,7 +1179,7 @@ export class ChannelMediaOptions {
1179
1179
  */
1180
1180
  publishTranscodedVideoTrack?: boolean;
1181
1181
  /**
1182
- * @ignore
1182
+ * Whether to publish the mixed audio track: true : Publish the mixed audio track. false : Do not publish the mixed audio track.
1183
1183
  */
1184
1184
  publishMixedAudioTrack?: boolean;
1185
1185
  /**
@@ -2389,7 +2389,7 @@ export interface IRtcEngineEventHandler {
2389
2389
  /**
2390
2390
  * Video frame rendering event callback.
2391
2391
  *
2392
- * After calling the startMediaRenderingTracing method or joining the channel, the SDK triggers this callback to report the events of video frame rendering and the indicators during the rendering process. Developers can optimize the indicators to improve the efficiency of the first video frame rendering.
2392
+ * After calling the startMediaRenderingTracing method or joining a channel, the SDK triggers this callback to report the events of video frame rendering and the indicators during the rendering process. Developers can optimize the indicators to improve the efficiency of the first video frame rendering.
2393
2393
  *
2394
2394
  * @param connection The connection information. See RtcConnection.
2395
2395
  * @param uid The user ID.
@@ -3320,7 +3320,9 @@ export abstract class IRtcEngine {
3320
3320
  *
3321
3321
  * @param enabled Whether to enable the image enhancement function: true : Enable the image enhancement function. false : (Default) Disable the image enhancement function.
3322
3322
  * @param options The image enhancement options. See BeautyOptions.
3323
- * @param type Source type of the extension. See MediaSourceType.
3323
+ * @param type The type of the media source to which the filter effect is applied. See MediaSourceType. In this method, this parameter supports only the following two settings:
3324
+ * Use the default value PrimaryCameraSource if you use camera to capture local video.
3325
+ * Set this parameter to CustomVideoSource if you use custom video source.
3324
3326
  *
3325
3327
  * @returns
3326
3328
  * 0: Success.
@@ -3367,7 +3369,17 @@ export abstract class IRtcEngine {
3367
3369
  ): FaceShapeAreaOptions;
3368
3370
 
3369
3371
  /**
3370
- * @ignore
3372
+ * Sets the filter effect options and specifies the media source.
3373
+ *
3374
+ * @param enabled Whether to enable the filter effect: true : Yes. false : (Default) No.
3375
+ * @param options The filter effect options. See FilterEffectOptions.
3376
+ * @param type The type of the media source to which the filter effect is applied. See MediaSourceType. In this method, this parameter supports only the following two settings:
3377
+ * Use the default value PrimaryCameraSource if you use camera to capture local video.
3378
+ * Set this parameter to CustomVideoSource if you use custom video source.
3379
+ *
3380
+ * @returns
3381
+ * 0: Success.
3382
+ * < 0: Failure.
3371
3383
  */
3372
3384
  abstract setFilterEffectOptions(
3373
3385
  enabled: boolean,
@@ -3378,17 +3390,13 @@ export abstract class IRtcEngine {
3378
3390
  /**
3379
3391
  * Sets low-light enhancement.
3380
3392
  *
3381
- * The low-light enhancement feature can adaptively adjust the brightness value of the video captured in situations with low or uneven lighting, such as backlit, cloudy, or dark scenes. It restores or highlights the image details and improves the overall visual effect of the video. You can call this method to enable the color enhancement feature and set the options of the color enhancement effect.
3382
- * Call this method after calling enableVideo.
3383
- * Dark light enhancement has certain requirements for equipment performance. The low-light enhancement feature has certain performance requirements on devices. If your device overheats after you enable low-light enhancement, Agora recommends modifying the low-light enhancement options to a less performance-consuming level or disabling low-light enhancement entirely.
3384
- * Both this method and setExtensionProperty can turn on low-light enhancement:
3385
- * When you use the SDK to capture video, Agora recommends this method (this method only works for video captured by the SDK).
3386
- * When you use an external video source to implement custom video capture, or send an external video source to the SDK, Agora recommends using setExtensionProperty.
3387
- * This method relies on the image enhancement dynamic library libagora_clear_vision_extension.dll. If the dynamic library is deleted, the function cannot be enabled normally.
3393
+ * You can call this method to enable the color enhancement feature and set the options of the color enhancement effect.
3388
3394
  *
3389
3395
  * @param enabled Whether to enable low-light enhancement: true : Enable low-light enhancement. false : (Default) Disable low-light enhancement.
3390
3396
  * @param options The low-light enhancement options. See LowlightEnhanceOptions.
3391
- * @param type The type of the video source. See MediaSourceType.
3397
+ * @param type The type of the media source to which the filter effect is applied. See MediaSourceType. In this method, this parameter supports only the following two settings:
3398
+ * Use the default value PrimaryCameraSource if you use camera to capture local video.
3399
+ * Set this parameter to CustomVideoSource if you use custom video source.
3392
3400
  *
3393
3401
  * @returns
3394
3402
  * 0: Success.
@@ -3403,17 +3411,13 @@ export abstract class IRtcEngine {
3403
3411
  /**
3404
3412
  * Sets video noise reduction.
3405
3413
  *
3406
- * Underlit environments and low-end video capture devices can cause video images to contain significant noise, which affects video quality. In real-time interactive scenarios, video noise also consumes bitstream resources and reduces encoding efficiency during encoding. You can call this method to enable the video noise reduction feature and set the options of the video noise reduction effect.
3407
- * Call this method after calling enableVideo.
3408
- * Video noise reduction has certain requirements for equipment performance. If your device overheats after you enable video noise reduction, Agora recommends modifying the video noise reduction options to a less performance-consuming level or disabling video noise reduction entirely.
3409
- * Both this method and setExtensionProperty can turn on video noise reduction function:
3410
- * When you use the SDK to capture video, Agora recommends this method (this method only works for video captured by the SDK).
3411
- * When you use an external video source to implement custom video capture, or send an external video source to the SDK, Agora recommends using setExtensionProperty.
3412
- * This method relies on the image enhancement dynamic library libagora_clear_vision_extension.dll. If the dynamic library is deleted, the function cannot be enabled normally.
3414
+ * You can call this method to enable the video noise reduction feature and set the options of the video noise reduction effect. If the noise reduction implemented by this method does not meet your needs, Agora recommends that you call the setBeautyEffectOptions method to enable the beauty and skin smoothing function to achieve better video noise reduction effects. The recommended BeautyOptions settings for intense noise reduction effect are as follows: lighteningContrastLevel LighteningContrastNormal lighteningLevel : 0.0 smoothnessLevel : 0.5 rednessLevel : 0.0 sharpnessLevel : 0.1
3413
3415
  *
3414
3416
  * @param enabled Whether to enable video noise reduction: true : Enable video noise reduction. false : (Default) Disable video noise reduction.
3415
3417
  * @param options The video noise reduction options. See VideoDenoiserOptions.
3416
- * @param type The type of the video source. See MediaSourceType.
3418
+ * @param type The type of the media source to which the filter effect is applied. See MediaSourceType. In this method, this parameter supports only the following two settings:
3419
+ * Use the default value PrimaryCameraSource if you use camera to capture local video.
3420
+ * Set this parameter to CustomVideoSource if you use custom video source.
3417
3421
  *
3418
3422
  * @returns
3419
3423
  * 0: Success.
@@ -3431,14 +3435,13 @@ export abstract class IRtcEngine {
3431
3435
  * The video images captured by the camera can have color distortion. The color enhancement feature intelligently adjusts video characteristics such as saturation and contrast to enhance the video color richness and color reproduction, making the video more vivid. You can call this method to enable the color enhancement feature and set the options of the color enhancement effect.
3432
3436
  * Call this method after calling enableVideo.
3433
3437
  * The color enhancement feature has certain performance requirements on devices. With color enhancement turned on, Agora recommends that you change the color enhancement level to one that consumes less performance or turn off color enhancement if your device is experiencing severe heat problems.
3434
- * Both this method and setExtensionProperty can enable color enhancement:
3435
- * When you use the SDK to capture video, Agora recommends this method (this method only works for video captured by the SDK).
3436
- * When you use an external video source to implement custom video capture, or send an external video source to the SDK, Agora recommends using setExtensionProperty.
3437
3438
  * This method relies on the image enhancement dynamic library libagora_clear_vision_extension.dll. If the dynamic library is deleted, the function cannot be enabled normally.
3438
3439
  *
3439
3440
  * @param enabled Whether to enable color enhancement: true Enable color enhancement. false : (Default) Disable color enhancement.
3440
3441
  * @param options The color enhancement options. See ColorEnhanceOptions.
3441
- * @param type The type of the video source. See MediaSourceType.
3442
+ * @param type The type of the media source to which the filter effect is applied. See MediaSourceType. In this method, this parameter supports only the following two settings:
3443
+ * Use the default value PrimaryCameraSource if you use camera to capture local video.
3444
+ * Set this parameter to CustomVideoSource if you use custom video source.
3442
3445
  *
3443
3446
  * @returns
3444
3447
  * 0: Success.
@@ -3464,9 +3467,9 @@ export abstract class IRtcEngine {
3464
3467
  * @param enabled Whether to enable virtual background: true : Enable virtual background. false : Disable virtual background.
3465
3468
  * @param backgroundSource The custom background. See VirtualBackgroundSource. To adapt the resolution of the custom background image to that of the video captured by the SDK, the SDK scales and crops the custom background image while ensuring that the content of the custom background image is not distorted.
3466
3469
  * @param segproperty Processing properties for background images. See SegmentationProperty.
3467
- * @param type The type of the video source. See MediaSourceType. In this method, this parameter supports only the following two settings:
3468
- * The default value is PrimaryCameraSource.
3469
- * If you want to use the second camera to capture video, set this parameter to SecondaryCameraSource.
3470
+ * @param type The type of the media source to which the filter effect is applied. See MediaSourceType. In this method, this parameter supports only the following two settings:
3471
+ * Use the default value PrimaryCameraSource if you use camera to capture local video.
3472
+ * Set this parameter to CustomVideoSource if you use custom video source.
3470
3473
  *
3471
3474
  * @returns
3472
3475
  * 0: Success.
@@ -3526,7 +3529,7 @@ export abstract class IRtcEngine {
3526
3529
  * If someone subscribes to the low-quality stream, the SDK enables the low-quality stream and resets it to the SimulcastStreamConfig configuration used in the most recent calling of setDualStreamMode. If no configuration has been set by the user previously, the following values are used:
3527
3530
  * Resolution: 480 × 272
3528
3531
  * Frame rate: 15 fps
3529
- * Bitrate: 500 Kbps ApplicationScenario1v1 (2) is suitable for 1v1 video call scenarios. To meet the requirements for low latency and high-quality video in this scenario, the SDK optimizes its strategies, improving performance in terms of video quality, first frame rendering, latency on mid-to-low-end devices, and smoothness under weak network conditions.
3532
+ * Bitrate: 500 Kbps ApplicationScenario1v1 (2) This is applicable to the scenario. To meet the requirements for low latency and high-quality video in this scenario, the SDK optimizes its strategies, improving performance in terms of video quality, first frame rendering, latency on mid-to-low-end devices, and smoothness under weak network conditions. ApplicationScenarioLiveshow (3) This is applicable to the scenario. In this scenario, fast video rendering and high image quality are crucial. The SDK implements several performance optimizations, including automatically enabling accelerated audio and video frame rendering to minimize first-frame latency (no need to call enableInstantMediaRendering), and B-frame encoding to achieve better image quality and bandwidth efficiency. The SDK also provides enhanced video quality and smooth playback, even in poor network conditions or on lower-end devices.
3530
3533
  *
3531
3534
  * @returns
3532
3535
  * 0: Success.
@@ -4797,7 +4800,14 @@ export abstract class IRtcEngine {
4797
4800
  ): number;
4798
4801
 
4799
4802
  /**
4800
- * @ignore
4803
+ * Sets the maximum frame rate for rendering local video.
4804
+ *
4805
+ * @param sourceType The type of the video source. See VideoSourceType.
4806
+ * @param targetFps The capture frame rate (fps) of the local video. Sopported values are: 1, 7, 10, 15, 24, 30, 60. Set this parameter to a value lower than the actual video frame rate; otherwise, the settings do not take effect.
4807
+ *
4808
+ * @returns
4809
+ * 0: Success.
4810
+ * < 0: Failure.
4801
4811
  */
4802
4812
  abstract setLocalRenderTargetFps(
4803
4813
  sourceType: VideoSourceType,
@@ -4805,7 +4815,13 @@ export abstract class IRtcEngine {
4805
4815
  ): number;
4806
4816
 
4807
4817
  /**
4808
- * @ignore
4818
+ * Sets the maximum frame rate for rendering remote video.
4819
+ *
4820
+ * @param targetFps The capture frame rate (fps) of the local video. Sopported values are: 1, 7, 10, 15, 24, 30, 60. Set this parameter to a value lower than the actual video frame rate; otherwise, the settings do not take effect.
4821
+ *
4822
+ * @returns
4823
+ * 0: Success.
4824
+ * < 0: Failure.
4809
4825
  */
4810
4826
  abstract setRemoteRenderTargetFps(targetFps: number): number;
4811
4827
 
@@ -5212,11 +5228,11 @@ export abstract class IRtcEngine {
5212
5228
  * Enables loopback audio capturing.
5213
5229
  *
5214
5230
  * If you enable loopback audio capturing, the output of the sound card is mixed into the audio stream sent to the other end.
5215
- * macOS does not support loopback audio capture of the default sound card. If you need to use this function, use a virtual sound card and pass its name to the deviceName parameter. Agora recommends using AgoraALD as the virtual sound card for audio capturing.
5231
+ * The macOS system's default sound card does not support recording functionality. As of v4.5.0, when you call this method for the first time, the SDK will automatically install the built-in AgoraALD virtual sound card developed by Agora. After successful installation, the audio routing will automatically switch to the virtual sound card and use it for audio capturing.
5216
5232
  * You can call this method either before or after joining a channel.
5217
5233
  * If you call the disableAudio method to disable the audio module, audio capturing will be disabled as well. If you need to enable audio capturing, call the enableAudio method to enable the audio module and then call the enableLoopbackRecording method.
5218
5234
  *
5219
- * @param enabled Sets whether to enable loopback audio capturing. true : Enable loopback audio capturing. false : (Default) Disable loopback audio capturing.
5235
+ * @param enabled Sets whether to enable loopback audio capturing. true : Enable sound card capturing. You can find the name of the virtual sound card in your system's Audio Devices > Output. false : Disable sound card capturing. The name of the virtual sound card will not be shown in your system's Audio Devices > Output.
5220
5236
  * @param deviceName macOS: The device name of the virtual sound card. The default value is set to NULL, which means using AgoraALD for loopback audio capturing.
5221
5237
  * Windows: The device name of the sound card. The default is set to NULL, which means the SDK uses the sound card of your device for loopback audio capturing.
5222
5238
  *
@@ -5654,7 +5670,7 @@ export abstract class IRtcEngine {
5654
5670
  *
5655
5671
  * Call this method after starting screen sharing or window sharing.
5656
5672
  *
5657
- * @param captureParams The screen sharing encoding parameters. The default video resolution is 1920 × 1080, that is, 2,073,600 pixels. Agora uses the value of this parameter to calculate the charges. See ScreenCaptureParameters. The video properties of the screen sharing stream only need to be set through this parameter, and are unrelated to setVideoEncoderConfiguration.
5673
+ * @param captureParams The screen sharing encoding parameters. See ScreenCaptureParameters. The video properties of the screen sharing stream only need to be set through this parameter, and are unrelated to setVideoEncoderConfiguration.
5658
5674
  *
5659
5675
  * @returns
5660
5676
  * 0: Success.
@@ -5866,19 +5882,46 @@ export abstract class IRtcEngine {
5866
5882
  abstract stopLocalVideoTranscoder(): number;
5867
5883
 
5868
5884
  /**
5869
- * @ignore
5885
+ * Starts local audio mixing.
5886
+ *
5887
+ * This method supports merging multiple audio streams into one audio stream locally. For example, merging the audio streams captured from the local microphone, and that from the media player, the sound card, and the remote users into one audio stream, and then publish the merged audio stream to the channel.
5888
+ * If you want to mix the locally captured audio streams, you can set publishMixedAudioTrack in ChannelMediaOptions to true, and then publish the mixed audio stream to the channel.
5889
+ * If you want to mix the remote audio stream, ensure that the remote audio stream has been published in the channel and you have subcribed to the audio stream that you need to mix.
5890
+ *
5891
+ * @param config The configurations for mixing the lcoal audio. See LocalAudioMixerConfiguration.
5892
+ *
5893
+ * @returns
5894
+ * 0: Success.
5895
+ * < 0: Failure.
5896
+ * -7: The IRtcEngine object has not been initialized. You need to initialize the IRtcEngine object before calling this method.
5870
5897
  */
5871
5898
  abstract startLocalAudioMixer(config: LocalAudioMixerConfiguration): number;
5872
5899
 
5873
5900
  /**
5874
- * @ignore
5901
+ * Updates the configurations for mixing audio streams locally.
5902
+ *
5903
+ * After calling startLocalAudioMixer, call this method if you want to update the local audio mixing configuration.
5904
+ *
5905
+ * @param config The configurations for mixing the lcoal audio. See LocalAudioMixerConfiguration.
5906
+ *
5907
+ * @returns
5908
+ * 0: Success.
5909
+ * < 0: Failure.
5910
+ * -7: The IRtcEngine object has not been initialized. You need to initialize the IRtcEngine object before calling this method.
5875
5911
  */
5876
5912
  abstract updateLocalAudioMixerConfiguration(
5877
5913
  config: LocalAudioMixerConfiguration
5878
5914
  ): number;
5879
5915
 
5880
5916
  /**
5881
- * @ignore
5917
+ * Stops the local audio mixing.
5918
+ *
5919
+ * After calling startLocalAudioMixer, call this method if you want to stop the local audio mixing.
5920
+ *
5921
+ * @returns
5922
+ * 0: Success.
5923
+ * < 0: Failure.
5924
+ * -7: The IRtcEngine object has not been initialized. You need to initialize the IRtcEngine object before calling this method.
5882
5925
  */
5883
5926
  abstract stopLocalAudioMixer(): number;
5884
5927
 
@@ -6869,7 +6912,16 @@ export abstract class IRtcEngine {
6869
6912
  abstract getNativeHandle(): number;
6870
6913
 
6871
6914
  /**
6872
- * @ignore
6915
+ * Takes a screenshot of the video at the specified observation point.
6916
+ *
6917
+ * This method takes a snapshot of a video stream from the specified user, generates a JPG image, and saves it to the specified path.
6918
+ *
6919
+ * @param uid The user ID. Set uid as 0 if you want to take a snapshot of the local user's video.
6920
+ * @param config The configuration of the snaptshot. See SnapshotConfig.
6921
+ *
6922
+ * @returns
6923
+ * 0: Success.
6924
+ * < 0: Failure.
6873
6925
  */
6874
6926
  abstract takeSnapshotWithConfig(uid: number, config: SnapshotConfig): number;
6875
6927
  }
@@ -6905,7 +6957,7 @@ export enum MediaDeviceStateType {
6905
6957
  */
6906
6958
  MediaDeviceStateDisabled = 2,
6907
6959
  /**
6908
- * @ignore
6960
+ * 3: The device is plugged in.
6909
6961
  */
6910
6962
  MediaDeviceStatePluggedIn = 3,
6911
6963
  /**
@@ -971,7 +971,17 @@ export abstract class IRtcEngineEx extends IRtcEngine {
971
971
  ): number;
972
972
 
973
973
  /**
974
- * @ignore
974
+ * Gets a video screenshot of the specified observation point using the connection ID.
975
+ *
976
+ * This method takes a snapshot of a video stream from the specified user, generates a JPG image, and saves it to the specified path.
977
+ *
978
+ * @param connection The connection information. See RtcConnection.
979
+ * @param uid The user ID. Set uid as 0 if you want to take a snapshot of the local user's video.
980
+ * @param config The configuration of the snaptshot. See SnapshotConfig.
981
+ *
982
+ * @returns
983
+ * 0: Success.
984
+ * < 0: Failure.
975
985
  */
976
986
  abstract takeSnapshotWithConfigEx(
977
987
  connection: RtcConnection,
@@ -181,12 +181,21 @@ export abstract class IAudioDeviceManager {
181
181
  abstract getPlaybackDeviceMute(): boolean;
182
182
 
183
183
  /**
184
- * @ignore
184
+ * Sets the mute status of the audio capture device.
185
+ *
186
+ * @param mute Whether to mute the audio recording device: true : Mute the audio capture device. false : Unmute the audio capture device.
187
+ *
188
+ * @returns
189
+ * 0: Success.
190
+ * < 0: Failure.
185
191
  */
186
192
  abstract setRecordingDeviceMute(mute: boolean): number;
187
193
 
188
194
  /**
189
- * @ignore
195
+ * Gets whether the audio capture device is muted.
196
+ *
197
+ * @returns
198
+ * true : The microphone is muted. false : The microphone is unmuted.
190
199
  */
191
200
  abstract getRecordingDeviceMute(): boolean;
192
201