@livedigital/client 3.57.0-lk-5354-api-reference.1 → 3.57.0-lk-5354-api-reference.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.
package/dist/Client.d.ts CHANGED
@@ -46,31 +46,61 @@ declare class Client {
46
46
  private readonly clientEventEmitter;
47
47
  readonly canUseNoiseSuppression = true;
48
48
  constructor(params: ClientParams);
49
- /** Метаданные текущей сессии, полезные для аналитики, логирования и диагностики. */
49
+ /**
50
+ * Метаданные текущей сессии, полезные для аналитики, логирования и диагностики.
51
+ * @group Метаданные
52
+ */
50
53
  get meta(): ClientMetaPayload;
51
- /** Набор пользовательских событий SDK, на которые приложение может подписываться. */
54
+ /**
55
+ * Набор пользовательских событий SDK, на которые приложение может подписываться.
56
+ * @group События
57
+ */
52
58
  get observer(): EnhancedEventEmitter<ClientObserverEvents>;
53
- /** Идентификатор текущего участника после успешного подключения к каналу. */
59
+ /**
60
+ * Идентификатор текущего участника после успешного подключения к каналу.
61
+ * @group Подключение
62
+ */
54
63
  get id(): string | undefined;
55
64
  /**
56
65
  * Список участников, известных клиенту в текущем канале.
57
66
  *
58
67
  * @remarks Список актуален только после получения события `channel-state-synced`.
59
68
  * До этого момента массив может быть неполным или пустым.
69
+ * @group Подключение
60
70
  */
61
71
  get peers(): Peer[];
62
- /** Список видеоустройств, обнаруженных после последнего вызова `detectDevices()`. */
72
+ /**
73
+ * Список видеоустройств, обнаруженных после последнего вызова `detectDevices()`.
74
+ * @group Устройства
75
+ */
63
76
  get availableVideoDevices(): MediaDeviceInfo[];
64
- /** Список аудиоустройств, обнаруженных после последнего вызова `detectDevices()`. */
77
+ /**
78
+ * Список аудиоустройств, обнаруженных после последнего вызова `detectDevices()`.
79
+ * @group Устройства
80
+ */
65
81
  get availableAudioDevices(): MediaDeviceInfo[];
66
- /** Показывает, был ли успешно подготовлен движок видеоэффектов. */
82
+ /**
83
+ * Показывает, был ли успешно подготовлен движок видеоэффектов.
84
+ * @group Медиа
85
+ */
67
86
  get effectsSDKInitialized(): boolean;
68
- /** Экземпляр калькулятора качества, который можно использовать в собственных метриках UI. */
87
+ /**
88
+ * Экземпляр калькулятора качества, который можно использовать в собственных метриках UI.
89
+ * @group Диагностика
90
+ */
69
91
  get scoresCalculator(): ScoresCalculator;
70
92
  /**
71
93
  * Обнаруживает доступные устройства ввода и обновляет внутренний список камер и микрофонов.
72
94
  *
73
95
  * @param force Принудительно запрашивает повторное определение устройств, даже если список уже известен.
96
+ * @group Устройства
97
+ * @example
98
+ * ```ts
99
+ * const { video, audio } = await client.detectDevices();
100
+ * // video и audio — массивы MediaDeviceInfo
101
+ * const camera = video[0];
102
+ * const mic = audio.find(d => d.label.includes('встроенный'));
103
+ * ```
74
104
  */
75
105
  detectDevices(force?: boolean): Promise<AvailableMediaDevices>;
76
106
  /**
@@ -78,6 +108,7 @@ declare class Client {
78
108
  *
79
109
  * Полезно вызывать заранее, если приложение хочет уменьшить задержку перед
80
110
  * первым включением background blur или виртуального фона.
111
+ * @group Медиа
81
112
  */
82
113
  initEffectsSDK(): Promise<boolean>;
83
114
  /**
@@ -86,12 +117,24 @@ declare class Client {
86
117
  * Канал и роль участника определяются сервером на основе переданного `token`.
87
118
  * После успешного завершения необходимо вызвать `requestChannelStateSync()`,
88
119
  * чтобы получить актуальное состояние канала через событие `channel-state-synced`.
120
+ * @group Подключение
121
+ * @example
122
+ * ```ts
123
+ * client.observer.on('channel-state-synced', () => {
124
+ * // Только здесь client.peers содержит актуальный список участников
125
+ * console.log('Участников в канале:', client.peers.length);
126
+ * });
127
+ *
128
+ * await client.join({ token: signalingToken });
129
+ * client.requestChannelStateSync(); // обязательно после join
130
+ * ```
89
131
  */
90
132
  join(params: JoinChannelParams): Promise<void>;
91
133
  /**
92
134
  * Выходит из канала.
93
135
  *
94
136
  * @param keepTracks Если `true`, локальные треки не будут автоматически уничтожены после выхода.
137
+ * @group Подключение
95
138
  */
96
139
  leave(keepTracks?: boolean): Promise<void>;
97
140
  /**
@@ -102,22 +145,59 @@ declare class Client {
102
145
  * получат `channel-activity-confirmation-acquired`.
103
146
  * Если никто не ответит — канал закрывается целиком и все участники получают
104
147
  * `channel-activity-confirmation-expired`.
148
+ * @group Подключение
105
149
  */
106
150
  confirmActivity(): Promise<void>;
107
- /** Создаёт локальный видеотрек с камеры, готовый к публикации в канале. */
151
+ /**
152
+ * Создаёт локальный видеотрек с камеры, готовый к публикации в канале.
153
+ * @group Медиа
154
+ * @example
155
+ * ```ts
156
+ * const track = await client.createCameraVideoTrack({ deviceId: camera.deviceId });
157
+ * await track.publish();
158
+ *
159
+ * // Включить background blur после публикации
160
+ * await track.enableEffects();
161
+ * await track.applyEffects({ blur: 0.7 });
162
+ * ```
163
+ */
108
164
  createCameraVideoTrack(options?: CreateCameraVideoTrackOptions): Promise<VideoTrack>;
109
- /** Создаёт локальный аудиотрек с микрофона, при необходимости сразу с шумоподавлением. */
165
+ /**
166
+ * Создаёт локальный аудиотрек с микрофона, при необходимости сразу с шумоподавлением.
167
+ * @group Медиа
168
+ * @example
169
+ * ```ts
170
+ * const track = await client.createMicrophoneAudioTrack({
171
+ * deviceId: mic.deviceId,
172
+ * noiseSuppression: true, // включить шумоподавление сразу
173
+ * });
174
+ * await track.publish();
175
+ * ```
176
+ */
110
177
  createMicrophoneAudioTrack(options?: CreateMicrophoneAudioTrackOptions): Promise<AudioTrack>;
111
- /** Создаёт набор треков для демонстрации экрана и, при наличии, системного аудио. */
178
+ /**
179
+ * Создаёт набор треков для демонстрации экрана и, при наличии, системного аудио.
180
+ * @group Медиа
181
+ */
112
182
  createScreenMediaTracks(options?: CreateScreenMediaOptions): Promise<Track[]>;
113
- /** Регистрирует в SDK уже созданный приложением аудиотрек, чтобы им можно было управлять и публиковать его. */
183
+ /**
184
+ * Регистрирует в SDK уже созданный приложением аудиотрек, чтобы им можно было управлять и публиковать его.
185
+ * @group Медиа
186
+ */
114
187
  createCustomAudioTrack(options: CreateCustomAudioOptions): Track;
115
- /** Регистрирует в SDK уже созданный приложением видеотрек, чтобы им можно было управлять и публиковать его. */
188
+ /**
189
+ * Регистрирует в SDK уже созданный приложением видеотрек, чтобы им можно было управлять и публиковать его.
190
+ * @group Медиа
191
+ */
116
192
  createCustomVideoTrack(options: CreateCustomVideoOptions): Track;
117
- /** Удаляет локальный трек из жизненного цикла SDK и освобождает связанные ресурсы. */
193
+ /**
194
+ * Удаляет локальный трек из жизненного цикла SDK и освобождает связанные ресурсы.
195
+ * @group Медиа
196
+ */
118
197
  deleteTrack(track: Track): Promise<void>;
119
198
  /**
120
199
  * @deprecated Используйте `requestChannelStateSync()` вместо этого метода.
200
+ * @group Подключение
121
201
  * `loadPeers` не является потокобезопасным и допускает состояние гонки между
122
202
  * двумя последовательными вызовами. `requestChannelStateSync()` гарантирует
123
203
  * атомарное получение состояния канала через событие `channel-state-synced`.
@@ -129,31 +209,62 @@ declare class Client {
129
209
  * Должен быть вызван сразу после `join()`. Когда синхронизация завершится,
130
210
  * придёт событие `channel-state-synced` — только после него `client.peers`
131
211
  * содержит актуальный список участников и их медиапотоков.
212
+ * @group Подключение
132
213
  */
133
214
  requestChannelStateSync(): void;
134
- /** Обновляет пользовательские `appData` текущего участника, чтобы другие клиенты получили новый payload.
135
- * Максимальный размер `appData` - 1KB. */
215
+ /**
216
+ * Обновляет пользовательские `appData` текущего участника, чтобы другие клиенты получили новый payload.
217
+ * Максимальный размер `appData` — 1 KB. Заменяет объект целиком, не мерджит с предыдущим.
218
+ * @group Метаданные
219
+ * @example
220
+ * ```ts
221
+ * await client.updateAppData({ role: 'presenter', handRaised: true });
222
+ * // Другие участники получат это через peer.appData
223
+ * ```
224
+ */
136
225
  updateAppData(appData: Record<string, unknown>): Promise<void>;
137
- /** Возвращает текущее состояние receive/send transport'ов для отладки сетевых проблем. */
226
+ /**
227
+ * Возвращает текущее состояние receive/send transport'ов для отладки сетевых проблем.
228
+ * @group Диагностика
229
+ */
138
230
  getTransportsInfo(): Promise<TransportsStateInfo>;
139
- /** Включает или отключает предпочтение relay-маршрутов для WebRTC-транспортов. */
231
+ /**
232
+ * Включает или отключает предпочтение relay-маршрутов для WebRTC-транспортов.
233
+ * @group Диагностика
234
+ */
140
235
  setPreferRelay(value: boolean): void;
141
- /** Показывает, включено ли сейчас предпочтение relay-маршрутов. */
236
+ /**
237
+ * Показывает, включено ли сейчас предпочтение relay-маршрутов.
238
+ * @group Диагностика
239
+ */
142
240
  getPreferRelay(): boolean;
143
241
  /**
144
242
  * Меняет ICE transport policy для активных транспортов клиента.
145
243
  *
146
244
  * Это полезно для диагностики сетевых сценариев, например когда нужно
147
245
  * принудительно использовать relay-соединение.
246
+ * @group Диагностика
148
247
  */
149
248
  changeIceTransportPolicy(policy: IceTransportPolicy): Promise<void>;
150
- /** Принудительно перезапускает ICE на активных транспортных соединениях клиента. */
249
+ /**
250
+ * Принудительно перезапускает ICE на активных транспортных соединениях клиента.
251
+ * @group Диагностика
252
+ */
151
253
  restartIce(): Promise<void>;
152
- /** Возвращает агрегированную транспортную статистику WebRTC для мониторинга качества соединения. */
254
+ /**
255
+ * Возвращает агрегированную транспортную статистику WebRTC для мониторинга качества соединения.
256
+ * @group Диагностика
257
+ */
153
258
  transportsStats(): TransportsWebRTCStats | undefined;
154
- /** Переопределяет адрес signaling-сервера для последующих подключений или переподключения. */
259
+ /**
260
+ * Переопределяет адрес signaling-сервера для последующих подключений или переподключения.
261
+ * @group Диагностика
262
+ */
155
263
  setSignalingServerUrl(url: string): void;
156
- /** Добавляет пользовательские метаданные, которые будут включаться в diagnostics и аналитику SDK. */
264
+ /**
265
+ * Добавляет пользовательские метаданные, которые будут включаться в diagnostics и аналитику SDK.
266
+ * @group Метаданные
267
+ */
157
268
  setMeta(meta: Record<string, unknown>): void;
158
269
  }
159
270
  export default Client;
@@ -47,7 +47,7 @@ declare class DefaultBaseTrack implements BaseTrack {
47
47
  setPriority(priority: RTCPriorityType): Promise<void>;
48
48
  stopMediaStreamTrack(): void;
49
49
  protected stopOriginalTrack(): void;
50
- produce({ encodings, codecOptions, preferredCodec, transformParams, keyFrameRequestDelay, }: TrackProduceParams): Promise<void>;
50
+ protected produce({ encodings, codecOptions, preferredCodec, transformParams, keyFrameRequestDelay, }: TrackProduceParams): Promise<void>;
51
51
  publish(): Promise<void>;
52
52
  unpublish(stopTrack?: boolean): Promise<void>;
53
53
  private pauseRemoteProducer;