agora-rte-sdk 2.1.2 → 2.3.0

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.
@@ -36,6 +36,7 @@ export interface AgoraRteOptions {
36
36
  language?: RteLanguage;
37
37
  region?: AgoraRegion;
38
38
  rtcConfigs?: Partial<AGRtcConfig>;
39
+ rtcSDKParameters?: any[];
39
40
  }
40
41
  export declare class AgoraRteEngineConfig {
41
42
  private static _config?;
@@ -45,6 +46,7 @@ export declare class AgoraRteEngineConfig {
45
46
  service: AgoraRteServiceConfig;
46
47
  rtcConfigs: AGRtcConfig;
47
48
  logFilePath?: string;
49
+ rtcSDKParameters: any[];
48
50
  static logLevel: AgoraRteLogLevel;
49
51
  static get platform(): AgoraRteRuntimePlatform;
50
52
  userId: string;
@@ -2,25 +2,24 @@ import { AGEventEmitter } from '../utils/events';
2
2
  import { AgoraRteEngineConfig } from '../../configs';
3
3
  import { AgoraRteScene } from '../../scene';
4
4
  import { AgoraMediaControl } from '../media/control';
5
- import { AgoraRteService } from '../services/api';
6
5
  import { TagInfo } from '../services/oss';
7
6
  export declare class AgoraRteEngine extends AGEventEmitter {
8
7
  private _mediaControl;
9
- private _apiService;
10
8
  private _logService;
11
9
  private _rtmManager;
12
10
  private _rtcManager;
13
11
  private static _engine?;
12
+ private _apiServicePathPrefix;
14
13
  static get engine(): AgoraRteEngine;
15
14
  constructor(config: AgoraRteEngineConfig);
16
15
  static createWithConfig(config: AgoraRteEngineConfig): AgoraRteEngine;
17
16
  static destroy(): void;
17
+ get apiServicePathPrefix(): string;
18
18
  login(rtmToken: string, userId: string): Promise<void>;
19
19
  logout(): void;
20
20
  static getVersion(): string;
21
21
  static getRtcVersion(): string;
22
22
  createAgoraRteScene(sceneId: string): AgoraRteScene;
23
23
  getAgoraMediaControl(): AgoraMediaControl;
24
- getApiService(): AgoraRteService;
25
24
  uploadSDKLogToAgoraService(tagInfo: TagInfo): Promise<void>;
26
25
  }
@@ -7,9 +7,10 @@ export declare class Logger {
7
7
  static debug(...args: any[]): void;
8
8
  static info(...args: any[]): void;
9
9
  static error(...args: any[]): void;
10
- private static log;
11
10
  static originConsole: Console;
11
+ private static log;
12
12
  static setupConsoleHijack(): void;
13
+ static restoreConsoleHijack(): void;
13
14
  collectConsoleLogs(): Promise<File>;
14
15
  cleanupConsoleLogs(): Promise<void>;
15
16
  private _addLocalFolderAsync;
@@ -1,7 +1,7 @@
1
1
  import { AGEventEmitter } from '../utils/events';
2
2
  import { AGRtcManager } from '../rtc';
3
3
  import { AgoraRteCameraVideoTrack, AgoraRteMicrophoneAudioTrack, AgoraRteScreenShareTrack } from './track';
4
- import { AGRtcDeviceInfo, AGScreenShareDevice, BeautyEffect } from '../../';
4
+ import { AGRtcDeviceInfo, AGScreenShareDevice, BeautyEffect, FcrAudioRawDataConfig } from '../../';
5
5
  export declare enum AgoraMediaControlEventType {
6
6
  cameraListChanged = "camera-list-changed",
7
7
  localAudioVolume = "local-audio-volume",
@@ -12,7 +12,8 @@ export declare enum AgoraMediaControlEventType {
12
12
  playbackDeviceListChanged = "playback-device-list-changed",
13
13
  recordingDeviceListChanged = "recording-device-list-changed",
14
14
  localAudioPlaybackVolumeIndicator = "start-test-audio-playback-volume-indicator",
15
- audioPlaybackStateChanged = "audio-playback-state-changed"
15
+ audioPlaybackStateChanged = "audio-playback-state-changed",
16
+ localAudioFrame = "local-audio-frame"
16
17
  }
17
18
  export declare class AgoraMediaControl extends AGEventEmitter {
18
19
  camera?: AgoraRteCameraVideoTrack;
@@ -35,5 +36,8 @@ export declare class AgoraMediaControl extends AGEventEmitter {
35
36
  stopAudioRecordingDeviceTest(): number;
36
37
  startAudioPlaybackDeviceTest(url: string): number;
37
38
  stopAudioPlaybackDeviceTest(): number;
39
+ setAudioFrameCallback(): number;
40
+ stopAudioFrameCallback(): number;
38
41
  setBeautyEffectOptions(enable: boolean, options: BeautyEffect): number;
42
+ setAudioRawDataConfig(config: FcrAudioRawDataConfig): number;
39
43
  }
@@ -13,7 +13,8 @@ export declare enum AgoraRteChannelMessageCmd {
13
13
  UserSubscribeInOut = 24,
14
14
  StreamInOut = 40,
15
15
  StreamsInOut = 41,
16
- MessageExtension = 99
16
+ MessageExtension = 99,
17
+ BatchUserProperties = 25
17
18
  }
18
19
  export declare enum AgoraRtePeerMessageCmd {
19
20
  PeerChat = 1
@@ -26,6 +27,7 @@ export declare enum AgoraRteEventType {
26
27
  UserRemoved = "user-removed",
27
28
  RoomPropertyUpdated = "room-property-updated",
28
29
  UserPropertyUpdated = "user-property-updated",
30
+ BatchUserPropertyUpdated = "batch-user-property-updated",
29
31
  LocalStreamAdded = "local-stream-added",
30
32
  LocalStreamUpdate = "local-stream-update",
31
33
  LocalStreamRemove = "local-stream-removed",
@@ -44,7 +46,8 @@ export declare enum AgoraRteEventType {
44
46
  LocalAudioTrackStateChanged = "local-audio-track-state-changed",
45
47
  RtcConnectionStateChanged = "rtc-connection-state-changed",
46
48
  RtmConnectionStateChanged = "rtm-connection-state-changed",
47
- RteConnectionStateChanged = "rte-connection-state-changed"
49
+ RteConnectionStateChanged = "rte-connection-state-changed",
50
+ TimeStampGapUpdate = "timestamp-gap-update"
48
51
  }
49
52
  export interface AgoraRteChannelMessageHandle {
50
53
  on(evt: AgoraRteEventType, ...args: any[]): this;
@@ -53,6 +56,7 @@ export interface AgoraRteChannelMessageHandle {
53
56
  export declare class AgoraRteChannelMessageHandle extends AGEventEmitter {
54
57
  protected logger: Injectable.Logger;
55
58
  private _dataStore;
59
+ private _timestampGap;
56
60
  sceneId: string;
57
61
  userUuid: string;
58
62
  streamUuid: string;
@@ -73,8 +77,10 @@ export declare class AgoraRteChannelMessageHandle extends AGEventEmitter {
73
77
  private _handleUserInfo;
74
78
  private _handleUserProperty;
75
79
  private _handleUserProperties;
80
+ private _handleBatchUserProperties;
76
81
  private _processStreamEvent;
77
82
  private _handleStreamInOut;
78
83
  private _handleStreamsInOut;
79
84
  private _handleMessageExtension;
85
+ private _syncTsGapWithServerAndLocal;
80
86
  }
@@ -20,12 +20,19 @@ export interface AgoraRteOperator {
20
20
  userName: string;
21
21
  role: string;
22
22
  }
23
+ export interface AgoraRteMessageBatch {
24
+ id: number;
25
+ total: number;
26
+ current: number;
27
+ }
23
28
  export interface AgoraRteMessageHandleTask {
24
29
  sequence: {
25
30
  cmd: number;
26
31
  operator: AgoraRteOperator;
27
32
  sequence: number;
28
33
  data: any;
34
+ batch: AgoraRteMessageBatch;
35
+ timestamp: number;
29
36
  };
30
37
  }
31
38
  export interface AgoraRtePeerMessageHandleTask {
@@ -1,5 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import { EventEmitter } from 'events';
3
+ import { AgoraRteScene } from '../../../scene';
3
4
  import { Injectable } from '../../decorator/type';
4
5
  import { AGRtmManager } from '../../rtm';
5
6
  import { AgoraRteSyncDataStore } from './data';
@@ -7,7 +8,7 @@ import { AgoraRteChannelMessageHandle } from './handler';
7
8
  import { AgoraRteMessageHandleTask, AgoraRteSyncSnapshotData } from './struct';
8
9
  export declare class AgoraRteSynchronizer {
9
10
  protected logger: Injectable.Logger;
10
- sceneId: string;
11
+ private _scene;
11
12
  userUuid: string;
12
13
  streamUuid: string;
13
14
  private _channelObserver;
@@ -19,8 +20,8 @@ export declare class AgoraRteSynchronizer {
19
20
  private _handleChannelMessage;
20
21
  private _handlePeerMessage;
21
22
  handle: AgoraRteChannelMessageHandle;
22
- constructor(dataStore: AgoraRteSyncDataStore, { sceneId, userUuid, streamUuid, channelObserver, rtm, }: {
23
- sceneId: string;
23
+ constructor(dataStore: AgoraRteSyncDataStore, { scene, userUuid, streamUuid, channelObserver, rtm, }: {
24
+ scene: AgoraRteScene;
24
25
  userUuid: string;
25
26
  streamUuid: string;
26
27
  channelObserver: EventEmitter;
@@ -1,9 +1,10 @@
1
+ import { LowStreamParameter, RemoteStreamType, UID } from 'agora-rtc-sdk-ng';
1
2
  import { ClientRole } from '../../../type';
2
3
  import { AgoraRteAudioSourceType, AgoraRteVideoSourceType } from '../../media/track';
3
4
  import { AGEventEmitter } from '../../utils/events';
4
5
  import { AgoraRtcVideoCanvas } from '../canvas';
5
6
  import { AGRtcConnectionType } from '../channel';
6
- import { AgoraRteMediaSourceState, AGRtcDeviceInfo, AGScreenShareDevice, AGScreenShareType, BeautyEffect, NetworkStats, RtcState } from '../type';
7
+ import { AgoraRteMediaSourceState, AGRtcDeviceInfo, AGScreenShareDevice, AGScreenShareType, BeautyEffect, FcrAudioRawDataConfig, NetworkStats, RtcState } from '../type';
7
8
  export declare type LocalVideoTrackStateEvent = (state: AgoraRteMediaSourceState, type: AgoraRteVideoSourceType) => void;
8
9
  export declare type LocalAudioTrackStateEvent = (state: AgoraRteMediaSourceState, type: AgoraRteAudioSourceType) => void;
9
10
  export declare type LocalCameraDeviceListEvent = (addNewDevice: boolean, newDevices: AGRtcDeviceInfo[], allDevices: AGRtcDeviceInfo[]) => void;
@@ -23,11 +24,15 @@ export declare abstract class RtcAudioDeviceManagerBase extends AGEventEmitter {
23
24
  abstract onLocalAudioTrackStateChanged(cb: LocalAudioTrackStateEvent): number;
24
25
  abstract onLocalAudioVolume(cb: (volume: number) => void): number;
25
26
  abstract onLocalAudioPlaybackTestVolumeChanged(cb: LocalAudioPlaybackVolumeIndicatorEvent): number;
27
+ abstract onAudioFrame(cb: (buffer: ArrayBuffer) => void): number;
26
28
  }
27
29
  export declare abstract class RtcChannelAdapterBase extends AGEventEmitter {
28
30
  abstract join(token: string, streamUuid: string, connectionType: AGRtcConnectionType): Promise<void>;
29
31
  abstract getSessionId(): string;
30
32
  abstract leave(connectionType?: AGRtcConnectionType): Promise<void>;
33
+ abstract enableDualStream(enable: boolean, connectionType?: AGRtcConnectionType): Promise<void>;
34
+ abstract setLowStreamParameter(streamParameter: LowStreamParameter, connectionType?: AGRtcConnectionType): number;
35
+ abstract setRemoteVideoStreamType(uid: UID, streamType: RemoteStreamType, connectionType: AGRtcConnectionType): Promise<void>;
31
36
  abstract muteLocalVideo(mute: boolean, connectionType: AGRtcConnectionType): number;
32
37
  abstract muteLocalAudio(mute: boolean, connectionType: AGRtcConnectionType): number;
33
38
  abstract muteLocalScreenShare(mute: boolean, connectionType: AGRtcConnectionType): number;
@@ -65,6 +70,9 @@ export declare abstract class RtcAdapterBase extends AGEventEmitter {
65
70
  abstract onLocalScreenShareTrackStateChanged(cb: LocalVideoTrackStateEvent): number;
66
71
  abstract destroy(): number;
67
72
  abstract setBeautyEffectOptions(enable: boolean, options: BeautyEffect): number;
73
+ abstract setAudioRawDataConfig(config: FcrAudioRawDataConfig): number;
74
+ abstract setAudioFrameCallback(): number;
75
+ abstract stopAudioFrameCallback(): number;
68
76
  static getRtcVersion(): string;
69
77
  abstract hasScreenSharePermission(): boolean;
70
78
  }
@@ -35,4 +35,5 @@ export declare class RtcAudioDeviceManagerElectron extends RtcAudioDeviceManager
35
35
  private _emitRecordingListChanged;
36
36
  private _fetchPlaybackDeviceList;
37
37
  private _fetchRecordingDeviceList;
38
+ onAudioFrame(cb: (buffer: ArrayBuffer) => void): number;
38
39
  }
@@ -2,11 +2,12 @@ import type AgoraRtcEngine from 'agora-electron-sdk/types/AgoraSdk';
2
2
  import { AgoraRteVideoSourceType } from '../../../media/track';
3
3
  import { AgoraRtcVideoCanvas } from '../../canvas';
4
4
  import { AGRtcConnectionType } from '../../channel';
5
- import { AGScreenShareDevice, AGScreenShareType, BeautyEffect, NetworkStats, RtcState } from '../../type';
5
+ import { AGScreenShareDevice, AGScreenShareType, BeautyEffect, FcrAudioRawDataConfig, NetworkStats, RtcState } from '../../type';
6
6
  import { LocalVideoTrackStateEvent, LocalAudioTrackStateEvent, RtcAdapterBase, RtcAudioDeviceManagerBase, RtcChannelAdapterBase, RtcVideoDeviceManagerBase, LocalAudioPlaybackVolumeIndicatorEvent } from '../base';
7
7
  import { AgoraRteElectronCameraThread } from './thread';
8
8
  import { ChannelProfile, ClientRole } from '../../../../type';
9
9
  import { Injectable } from '../../../decorator/type';
10
+ import { LowStreamParameter, RemoteStreamType, UID } from 'agora-rtc-sdk-ng';
10
11
  declare global {
11
12
  interface Window {
12
13
  main_pid: string;
@@ -56,7 +57,11 @@ export declare class RtcAdapterElectron extends RtcAdapterBase {
56
57
  onLocalAudioTrackStateChanged(cb: LocalAudioTrackStateEvent): number;
57
58
  onLocalAudioVolume(cb: (volume: number) => void): number;
58
59
  onLocalScreenShareTrackStateChanged(cb: LocalVideoTrackStateEvent): number;
60
+ onAudioFrame(cb: (buffer: ArrayBuffer) => void): number;
59
61
  setBeautyEffectOptions(enable: boolean, options: BeautyEffect): number;
62
+ setAudioFrameCallback(): number;
63
+ stopAudioFrameCallback(): number;
64
+ setAudioRawDataConfig(config: FcrAudioRawDataConfig): number;
60
65
  hasScreenSharePermission(): boolean;
61
66
  destroy(): number;
62
67
  static getRtcVersion(): string;
@@ -75,6 +80,9 @@ export declare class RtcChannelAdapterElectron extends RtcChannelAdapterBase {
75
80
  private get _channelProfile();
76
81
  constructor(channelName: string, configs: RtcAdapterElectronConfig, base: RtcAdapterBase);
77
82
  getSessionId(): string;
83
+ enableDualStream(enable: boolean): Promise<void>;
84
+ setLowStreamParameter(_streamParameter: LowStreamParameter): number;
85
+ setRemoteVideoStreamType(uid: UID, streamType: RemoteStreamType): Promise<void>;
78
86
  onConnectionStateChanged(cb: (state: RtcState, connectionType: AGRtcConnectionType) => void): number;
79
87
  leave(connectionType?: AGRtcConnectionType): Promise<void>;
80
88
  setChannelProfile(profile: ChannelProfile): number;
@@ -1,4 +1,4 @@
1
- import { IAgoraRTCClient } from 'agora-rtc-sdk-ng';
1
+ import { IAgoraRTCClient, LowStreamParameter, RemoteStreamType, UID } from 'agora-rtc-sdk-ng';
2
2
  import { RtcAdapterWeb, RtcAdapterWebConfig } from '.';
3
3
  import { AGEventEmitter } from '../../../utils/events';
4
4
  import { RtcAdapterBase } from '../base';
@@ -18,6 +18,7 @@ export declare class AgoraRteWebClientBase extends AGEventEmitter {
18
18
  private _connectionState;
19
19
  protected readonly channelName: string;
20
20
  readonly connectionType: AGRtcConnectionType;
21
+ private _networkStats;
21
22
  constructor(channelName: string, configs: RtcAdapterWebConfig, base: RtcAdapterBase, connectionType: AGRtcConnectionType);
22
23
  get ready(): boolean;
23
24
  protected setConnectionState(state: RtcState): void;
@@ -32,7 +33,6 @@ export declare class AgoraRteWebClientBase extends AGEventEmitter {
32
33
  private _getEncryptionMode;
33
34
  }
34
35
  export declare class AgoraRteWebClientMain extends AgoraRteWebClientBase {
35
- private _networkStats;
36
36
  private _remoteRtcUsers;
37
37
  private _muteRemoteVideo;
38
38
  private _muteRemoteAudio;
@@ -46,6 +46,13 @@ export declare class AgoraRteWebClientMain extends AgoraRteWebClientBase {
46
46
  protected setConnectionState(state: RtcState): void;
47
47
  muteRemoteVideo(streamUuid: string, mute: boolean): number;
48
48
  muteRemoteAudio(streamUuid: string, mute: boolean): number;
49
+ enableDualStream(enable: boolean): Promise<void>;
50
+ setLowStreamParameter(streamParameter: LowStreamParameter): number;
51
+ setRemoteVideoStreamType(uid: UID, streamType: RemoteStreamType): Promise<void>;
52
+ leave(): Promise<void>;
49
53
  }
50
54
  export declare class AgoraRteWebClientSub extends AgoraRteWebClientBase {
55
+ setLowStreamParameter(streamParameter: LowStreamParameter): number;
56
+ setRemoteVideoStreamType(uid: UID, streamType: RemoteStreamType): Promise<void>;
57
+ enableDualStream(enable: boolean): Promise<void>;
51
58
  }
@@ -22,6 +22,7 @@ export declare class RtcAudioDeviceManagerWeb extends RtcAudioDeviceManagerBase
22
22
  private _playbackDeviceIds;
23
23
  constructor(adapter: RtcAdapterWeb, noDevicePermission?: boolean);
24
24
  onLocalAudioPlaybackTestVolumeChanged(cb: LocalAudioPlaybackVolumeIndicatorEvent): number;
25
+ onAudioFrame(cb: (buffer: ArrayBuffer) => void): number;
25
26
  onLocalAudioTrackStateChanged(cb: LocalAudioTrackStateEvent): number;
26
27
  onLocalAudioVolume(cb: (volume: number) => void): number;
27
28
  onLocalRecordingDeviceListChanged(cb: (addNewDevice: boolean, newDevices: AGRtcDeviceInfo[], allDevices: AGRtcDeviceInfo[]) => void): number;
@@ -1,12 +1,12 @@
1
1
  import { LocalVideoTrackStateEvent, LocalAudioTrackStateEvent, LocalAudioPlaybackVolumeIndicatorEvent } from '../base';
2
2
  import { RtcAdapterBase, RtcAudioDeviceManagerBase, RtcChannelAdapterBase, RtcVideoDeviceManagerBase } from '../base';
3
- import { SDK_CODEC, SDK_MODE } from 'agora-rtc-sdk-ng';
3
+ import { LowStreamParameter, RemoteStreamType, SDK_CODEC, SDK_MODE, UID } from 'agora-rtc-sdk-ng';
4
4
  import { AgoraRteCameraThread, AgoraRteMicrophoneThread, AgoraRteScreenShareThread } from './thread';
5
5
  import { AgoraRtcVideoCanvas } from '../../canvas';
6
6
  import { AgoraRteVideoSourceType } from '../../../media/track';
7
7
  import { AgoraRteWebClientMain, AgoraRteWebClientSub } from './client';
8
8
  import { AGRtcConnectionType } from '../../channel';
9
- import { AGScreenShareDevice, AGScreenShareType, NetworkStats, RtcState } from '../../type';
9
+ import { AGScreenShareDevice, AGScreenShareType, FcrAudioRawDataConfig, NetworkStats, RtcState } from '../../type';
10
10
  import { Injectable } from '../../../decorator/type';
11
11
  import { ClientRole } from '../../../../type';
12
12
  export interface RtcAdapterWebConfig {
@@ -51,7 +51,11 @@ export declare class RtcAdapterWeb extends RtcAdapterBase {
51
51
  onLocalAudioTrackStateChanged(cb: LocalAudioTrackStateEvent): number;
52
52
  onLocalScreenShareTrackStateChanged(cb: LocalVideoTrackStateEvent): number;
53
53
  onLocalAudioVolume(cb: (volume: number) => void): number;
54
+ onAudioFrame(cb: (buffer: ArrayBuffer) => void): number;
54
55
  setBeautyEffectOptions(enable: boolean, options: object): number;
56
+ setAudioFrameCallback(): number;
57
+ stopAudioFrameCallback(): number;
58
+ setAudioRawDataConfig(config: FcrAudioRawDataConfig): number;
55
59
  hasScreenSharePermission(): boolean;
56
60
  destroy(): number;
57
61
  static getRtcVersion(): string;
@@ -66,6 +70,9 @@ export declare class RtcChannelAdapterWeb extends RtcChannelAdapterBase {
66
70
  private client;
67
71
  join(token: string, streamUuid: string, connectionType: AGRtcConnectionType): Promise<void>;
68
72
  leave(connectionType?: AGRtcConnectionType): Promise<void>;
73
+ enableDualStream(enable: boolean, connectionType: AGRtcConnectionType): Promise<void>;
74
+ setLowStreamParameter(streamParameter: LowStreamParameter, connectionType: AGRtcConnectionType): number;
75
+ setRemoteVideoStreamType(uid: UID, streamType: RemoteStreamType, connectionType: AGRtcConnectionType): Promise<void>;
69
76
  setClientRole(role: ClientRole): number;
70
77
  muteLocalVideo(mute: boolean, connectionType: AGRtcConnectionType): number;
71
78
  muteLocalAudio(mute: boolean, connectionType: AGRtcConnectionType): number;
@@ -1,6 +1,6 @@
1
1
  import { AgoraRteThread } from '../../../utils/thread';
2
2
  import { AgoraRtcVideoCanvas } from '../../canvas';
3
- import { AgoraRteMediaSourceState } from '../../type';
3
+ import { AgoraRteMediaSourceState, FcrAudioRawDataConfig } from '../../type';
4
4
  import { IAgoraRTCClient, IAgoraRTCRemoteUser, ILocalTrack, IRemoteAudioTrack } from 'agora-rtc-sdk-ng';
5
5
  export declare class AgoraRteMediaTrackThread extends AgoraRteThread {
6
6
  track?: ILocalTrack;
@@ -21,8 +21,12 @@ export declare class AgoraRteMicrophoneThread extends AgoraRteMediaTrackThread {
21
21
  private _recordingDeviceChanged;
22
22
  trackState: AgoraRteMediaSourceState;
23
23
  private _volumePollingTask?;
24
+ private _audioRawConfig;
24
25
  setMicTrackState(state: AgoraRteMediaSourceState, reason?: string): void;
25
26
  setRecordingDevice(deviceId: string): void;
27
+ setAudioRawDataConfig(config: FcrAudioRawDataConfig): void;
28
+ setAudioFrameCallback(): void;
29
+ stopAudioFrameCallback(): void;
26
30
  onExecution(): Promise<void>;
27
31
  }
28
32
  export declare class AgoraRteScreenShareThread extends AgoraRteMediaTrackThread {
@@ -1,3 +1,4 @@
1
+ import { LowStreamParameter, RemoteStreamType, UID } from 'agora-rtc-sdk-ng';
1
2
  import { ClientRole } from '../../type';
2
3
  import { RtcChannelAdapterBase } from './adapter/base';
3
4
  import { NetworkStats, RtcState } from './type';
@@ -10,6 +11,9 @@ export declare class AGRtcChannel {
10
11
  private _adapter;
11
12
  constructor(channelName: string, adapter: RtcChannelAdapterBase);
12
13
  private connectionType;
14
+ enableDualStream(enable: boolean, connectionType?: AGRtcConnectionType): Promise<void>;
15
+ setLowStreamParameter(streamParameter: LowStreamParameter, connectionType?: AGRtcConnectionType): number;
16
+ setRemoteVideoStreamType(uid: UID, streamType: RemoteStreamType, connectionType?: AGRtcConnectionType): Promise<void>;
13
17
  getRtcSid(): string;
14
18
  join(token: string, streamUuid: string, connectionType?: AGRtcConnectionType): Promise<void>;
15
19
  leave(connectionType?: AGRtcConnectionType): Promise<void>;
@@ -3,7 +3,7 @@ import { AGRtcConfig } from './adapter';
3
3
  import { LocalAudioTrackStateEvent, LocalVideoTrackStateEvent, RtcAudioDeviceManagerBase, RtcVideoDeviceManagerBase } from './adapter/base';
4
4
  import { AgoraRtcVideoCanvas } from './canvas';
5
5
  import { AGRtcChannel } from './channel';
6
- import { AGRtcDeviceInfo, AGScreenShareDevice, AGScreenShareType, BeautyEffect } from './type';
6
+ import { AGRtcDeviceInfo, AGScreenShareDevice, AGScreenShareType, BeautyEffect, FcrAudioRawDataConfig } from './type';
7
7
  export declare class AGRtcManager {
8
8
  private _adapter;
9
9
  private _channels;
@@ -28,6 +28,8 @@ export declare class AGRtcManager {
28
28
  stopAudioRecordingDeviceTest(): number;
29
29
  startAudioPlaybackDeviceTest(url: string): number;
30
30
  stopAudioPlaybackDeviceTest(): number;
31
+ setAudioFrameCallback(): number;
32
+ stopAudioFrameCallback(): number;
31
33
  onLocalCameraListChanged(cb: (addNewDevice: boolean, newDevices: AGRtcDeviceInfo[], allDevices: AGRtcDeviceInfo[]) => void): number;
32
34
  onLocalRecordingDeviceListChanged(cb: (addNewDevice: boolean, newDevices: AGRtcDeviceInfo[], allDevices: AGRtcDeviceInfo[]) => void): number;
33
35
  onLocalPlaybackListChanged(cb: (addNewDevice: boolean, newDevices: AGRtcDeviceInfo[], allDevices: AGRtcDeviceInfo[]) => void): number;
@@ -35,6 +37,7 @@ export declare class AGRtcManager {
35
37
  onLocalAudioTrackStateChanged(cb: LocalAudioTrackStateEvent): number;
36
38
  onLocalAudioVolume(cb: (volume: number) => void): number;
37
39
  setBeautyEffectOptions(enable: boolean, options: BeautyEffect): number;
40
+ setAudioRawDataConfig(config: FcrAudioRawDataConfig): number;
38
41
  hasScreenSharePermission(): boolean;
39
42
  destroy(): number;
40
43
  }
@@ -1,3 +1,4 @@
1
+ import { LowStreamParameter } from 'agora-rtc-sdk-ng';
1
2
  export declare enum AGNetworkQuality {
2
3
  unknown = 99,
3
4
  bad = 1,
@@ -106,3 +107,19 @@ export interface BeautyEffect {
106
107
  rednessLevel: number;
107
108
  smoothnessLevel: number;
108
109
  }
110
+ export interface FcrAudioRawDataConfig {
111
+ frameSize: 256 | 512 | 1024 | 2048 | 4096 | 8192 | 16384;
112
+ }
113
+ export declare enum AgoraRteRemoteStreamType {
114
+ /**
115
+ * 0: High-quality video stream (high-bitrate, high-resolution).
116
+ */
117
+ HIGH_STREAM = 0,
118
+ /**
119
+ * 1: Low-quality video stream (low-bitrate, low-resolution).
120
+ */
121
+ LOW_STREAM = 1
122
+ }
123
+ export declare type AgoraRteStreamUID = string | number;
124
+ export interface AgoraRteLowStreamParameter extends LowStreamParameter {
125
+ }
@@ -13,6 +13,6 @@ export interface AgoraFetchParams {
13
13
  export declare class ApiBase {
14
14
  host?: string;
15
15
  pathPrefix?: string;
16
- headers?: AgoraRteServiceConfig;
16
+ headers?: AgoraRteServiceConfig['headers'];
17
17
  fetch(params: AgoraFetchParams): Promise<any>;
18
18
  }
@@ -1,8 +1,21 @@
1
1
  import { AGNetworkQuality } from '../..';
2
+ /**
3
+ * - 0: The network quality is unknown.
4
+ * - 1: The network quality is excellent.
5
+ * - 2: The network quality is quite good, but the bitrate may be slightly
6
+ * lower than excellent.
7
+ * - 3: Users can feel the communication slightly impaired.
8
+ * - 4: Users cannot communicate smoothly.
9
+ * - 5: The network is so bad that users can barely communicate.
10
+ * - 6: The network is down and users cannot communicate at all.
11
+ * - 7: Users cannot detect the network quality.
12
+ * - 8: Detecting the network quality.
13
+ */
2
14
  export declare class QualityCalc {
3
15
  private quality;
4
16
  private qualities;
5
17
  static MAX_QUALITY_NUMBER: number;
18
+ static QUALITY_THRESHOLD: number;
6
19
  private _updateQualities;
7
20
  private _resetQualities;
8
21
  toAGQuality(webquality?: number): AGNetworkQuality;