@agora-js/media 4.24.5 → 4.24.7

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/media.d.ts CHANGED
@@ -264,6 +264,12 @@ declare class AudioElementPlayCenter {
264
264
  private elementStateMap;
265
265
  private elementsNeedToResume;
266
266
  private sinkIdMap;
267
+ /**
268
+ * element → 当前 trackId 的可变持有者。
269
+ * 事件监听闭包读它拿「当前 id」,而不是捕获创建时的 id;
270
+ * 这样预渲染移交后 reuseTrackId 只改一处,监听器就写到新 id 上(见 reuseTrackId)。
271
+ */
272
+ private elementIdMap;
267
273
  constructor();
268
274
  setSinkID(trackId: string, deviceID: string): Promise<void>;
269
275
  play(track: MediaStreamTrack, trackId: string, volume: number, sessionId?: string): void;
@@ -272,6 +278,12 @@ declare class AudioElementPlayCenter {
272
278
  setVolume(trackId: string, volume: number): void;
273
279
  getVolume(trackId: string): number;
274
280
  stop(trackId: string): void;
281
+ /**
282
+ * 预渲染移交:把已在播放的 <audio> 从临时 id 迁移到 track 的正式 id(getTrackId())。
283
+ * 参照 RemoteVideoTrack 复用 _prePlayer 的思路——渲染层归属 track 自己的身份,
284
+ * 而不是让 track 长期追着一个临时 id。迁移 3 张 map + 更新事件监听读取的 id 持有者。
285
+ */
286
+ reuseTrackId(fromId: string, toId: string): void;
275
287
  private bindAudioElementEvents;
276
288
  getPlayerState(trackId: string): string;
277
289
  /**
@@ -4452,6 +4464,14 @@ export declare class RemoteAudioTrack extends RemoteTrack implements IRemoteAudi
4452
4464
  getStats(): RemoteAudioTrackStats;
4453
4465
  play(): void;
4454
4466
  stop(): void;
4467
+ /**
4468
+ * 预渲染移交:join 时(UID 未知)音频已用临时 id 起播,这里把渲染层交给正式构造出来的 track。
4469
+ * 必须按后端分两路——预渲染恒走 <audio>,但本 track 可能配置成 WebAudio:
4470
+ * - <audio> 后端:把预渲染那个元素 re-key 到 getTrackId(),track 之后一律用自己的 id。
4471
+ * - WebAudio 后端:预渲染的 <audio> 是「错的后端」,拆掉它、改由 WebAudio source 接管
4472
+ * (参照 setAmplifiedVolume 的 audio-element→WebAudio 适配:stop 元素 + 启 _source)。
4473
+ */
4474
+ _reusePreAudioElement(tempId: string, isPlaying: boolean): void;
4455
4475
  _destroy(): void;
4456
4476
  _isFreeze(): boolean;
4457
4477
  protected _updatePlayerSource(updateWebAudioSource?: boolean): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agora-js/media",
3
- "version": "4.24.5",
3
+ "version": "4.24.7",
4
4
  "description": "media module across @agora-js packages",
5
5
  "main": "AgoraRTC_N-media.js",
6
6
  "module": "AgoraRTC_N-media.esm.mjs",
@@ -23,8 +23,8 @@
23
23
  "homepage": "https://api-ref.agora.io/en/voice-sdk/web/4.x/index.html",
24
24
  "peerDependencies": {},
25
25
  "dependencies": {
26
- "@agora-js/shared": "4.24.5",
27
- "@agora-js/report": "4.24.5",
26
+ "@agora-js/shared": "4.24.7",
27
+ "@agora-js/report": "4.24.7",
28
28
  "axios": "^1.16.1",
29
29
  "agora-rte-extension": "^1.2.4",
30
30
  "agora-rte-extension-ng": "^1.0.3",
@@ -172,6 +172,7 @@ declare class AudioElementPlayCenter {
172
172
  private elementStateMap;
173
173
  private elementsNeedToResume;
174
174
  private sinkIdMap;
175
+ private elementIdMap;
175
176
  constructor();
176
177
  setSinkID(trackId: string, deviceID: string): Promise<void>;
177
178
  play(track: MediaStreamTrack, trackId: string, volume: number, sessionId?: string): void;
@@ -180,6 +181,7 @@ declare class AudioElementPlayCenter {
180
181
  setVolume(trackId: string, volume: number): void;
181
182
  getVolume(trackId: string): number;
182
183
  stop(trackId: string): void;
184
+ reuseTrackId(fromId: string, toId: string): void;
183
185
  private bindAudioElementEvents;
184
186
  getPlayerState(trackId: string): string;
185
187
  private autoResumeAudioElement;
@@ -2778,6 +2780,7 @@ export declare class RemoteAudioTrack extends RemoteTrack implements IRemoteAudi
2778
2780
  getStats(): RemoteAudioTrackStats;
2779
2781
  play(): void;
2780
2782
  stop(): void;
2783
+ _reusePreAudioElement(tempId: string, isPlaying: boolean): void;
2781
2784
  _destroy(): void;
2782
2785
  _isFreeze(): boolean;
2783
2786
  protected _updatePlayerSource(updateWebAudioSource?: boolean): void;