@agora-js/media 4.20.2 → 4.21.0-200

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.
@@ -39,6 +39,8 @@ export declare interface AgoraRTCCompatibility {
39
39
  supportPCSetConfiguration: boolean;
40
40
  supportWebRTCEncodedTransform: boolean;
41
41
  supportWebRTCInsertableStream: boolean;
42
+ supportRequestVideoFrameCallback: boolean;
43
+ supportWebCrypto: boolean;
42
44
  }
43
45
 
44
46
  declare class AgoraRTCPlayer extends VideoPlayer {
@@ -217,16 +219,20 @@ export declare interface AudioEncoderConfiguration {
217
219
  *
218
220
  * | Audio Profile | Configurations |
219
221
  * | -------- | --------------- |
220
- * |`"speech_low_quality"`|Sample rate 16 kHz, mono, encoding rate 24 Kbps|
221
- * |`"speech_standard"`|Sample rate 32 kHz, mono, encoding rate 24 Kbps|
222
- * |`"music_standard"`|Sample rate 48 kHz, mono, encoding rate 40 Kbps|
223
- * |`"standard_stereo"`|Sample rate 48 kHz, stereo, encoding rate 64 Kbps|
224
- * |`"high_quality"`|Sample rate 48 kHz, mono, encoding rate 128 Kbps|
225
- * |`"high_quality_stereo"`|Sample rate 48 kHz, stereo, encoding rate 192 Kbps| Kbps.
222
+ * |`"speech_low_quality"`|Sample rate 16 kHz, mono, encoding bitrate 24 Kbps|
223
+ * |`"speech_standard"`|Sample rate 32 kHz, mono, encoding bitrate 24 Kbps|
224
+ * |`"music_standard"`|Sample rate 48 kHz, mono, encoding bitrate 32 Kbps|
225
+ * |`"standard_stereo"`|Sample rate 48 kHz, stereo, encoding bitrate 64 Kbps|
226
+ * |`"high_quality"`|Sample rate 48 kHz, mono, encoding bitrate 128 Kbps|
227
+ * |`"high_quality_stereo"`|Sample rate 48 kHz, stereo, encoding bitrate 192 Kbps| Kbps.
226
228
  * @public
227
229
  */
228
230
  export declare type AudioEncoderConfigurationPreset = keyof typeof AUDIO_ENCODER_CONFIG_SETTINGS;
229
231
 
232
+ export declare interface AudioMetadata {
233
+ value: Uint8Array;
234
+ }
235
+
230
236
  export declare interface AudioPlaybackOptions {
231
237
  origin?: boolean;
232
238
  mixing?: boolean;
@@ -487,7 +493,7 @@ export declare class CameraVideoTrack extends LocalVideoTrack implements ICamera
487
493
  _enabled: boolean;
488
494
  _deviceName: string;
489
495
  get __className__(): string;
490
- constructor(track: MediaStreamTrack, config: CameraVideoTrackInitConfig, constraints: MediaTrackConstraints, scalabilityConfig?: SVCConfiguration, optimizationMode?: "motion" | "detail" | "balanced", trackId?: string);
496
+ constructor(track: MediaStreamTrack, config: CameraVideoTrackInitConfig, constraints: MediaTrackConstraints, scalabilityConfig?: SVCConfiguration, optimizationMode?: OptimizationMode | "balanced", trackId?: string);
491
497
  setDevice(deviceId: string | RequiredOnlyOneOf<{
492
498
  facingMode: VideoFacingModeEnum;
493
499
  deviceId: string;
@@ -547,7 +553,7 @@ export declare interface CameraVideoTrackInitConfig {
547
553
  *
548
554
  * > Note: This method is only supported on Chrome.
549
555
  */
550
- optimizationMode?: "motion" | "detail";
556
+ optimizationMode?: OptimizationMode;
551
557
  /**
552
558
  * @ignore
553
559
  *
@@ -794,6 +800,8 @@ export declare interface DenoiserStats {
794
800
  vl: number;
795
801
  }
796
802
 
803
+ export declare function detectSupportAudioElementSetSinkId(): boolean;
804
+
797
805
  /**
798
806
  * Information of the media input device.
799
807
  *
@@ -939,6 +947,13 @@ declare function event_source_state_change(currentState: AudioSourceState): void
939
947
  */
940
948
  declare function event_track_ended(): void;
941
949
 
950
+ /**
951
+ * Triggers when a media track is updated.
952
+ * @param track The media stream track. See [MediaStreamTrack](https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack).
953
+ * @event
954
+ */
955
+ export declare function event_track_updated(track: MediaStreamTrack): void;
956
+
942
957
  /**
943
958
  * Occurs when the `RTCRtpTransceiver` instance of the current track is updated.
944
959
  *
@@ -1064,6 +1079,8 @@ export declare function getAudioEncoderConfiguration(profile: AudioEncoderConfig
1064
1079
 
1065
1080
  export declare function getBitrateConstrainRange(width: number, height: number, frameRate: number, bitrateMin?: number, bitrateMax?: number): DoubleRange;
1066
1081
 
1082
+ export declare function getBitrateFromResAndFps(width: number, height: number, fps: number): Required<DoubleRange>;
1083
+
1067
1084
  export declare function getCompatibility(): AgoraRTCCompatibility;
1068
1085
 
1069
1086
  export declare function getConstraintsFromCameraConfig(config: CameraVideoTrackInitConfig): MediaTrackConstraints;
@@ -1080,6 +1097,14 @@ export declare function getElectronScreenStreamByUserSelect(config: ScreenConstr
1080
1097
 
1081
1098
  export declare function getLocalStream(config: GetUserMediaConfig, id: string): Promise<MediaStream>;
1082
1099
 
1100
+ export declare const getOriginSenderConfig: (track: LocalVideoTrack) => {
1101
+ frameRate: number;
1102
+ bitrateMax: number;
1103
+ bitrateMin: number;
1104
+ scaleResolutionDownBy: number;
1105
+ scale: number;
1106
+ };
1107
+
1083
1108
  export declare function getScalabilityConfiguration(profile: SVCConfiguration | SVCConfigurationPreset): SVCConfiguration;
1084
1109
 
1085
1110
  export declare function getScreenEncoderConfiguration(profile: VideoEncoderConfiguration | ScreenEncoderConfigurationPreset | string): VideoEncoderConfiguration;
@@ -1390,6 +1415,11 @@ export declare interface ILocalDataChannel extends IDataChannel {
1390
1415
  * `LocalTrack` is the basic interface for local tracks, providing public methods for [LocalAudioTrack]{@link ILocalAudioTrack} and [LocalVideoTrack]{@link ILocalVideoTrack}.
1391
1416
  */
1392
1417
  export declare interface ILocalTrack extends ITrack {
1418
+ /**
1419
+ * @param event The event name.
1420
+ * @param listener See [track-updated]{@link event_track_updated}.
1421
+ */
1422
+ on(event: "track-updated", listener: typeof event_track_updated): void;
1393
1423
  /**
1394
1424
  * @param event The event name.
1395
1425
  * @param listener See [track-ended]{@link event_track_ended}.
@@ -1469,6 +1499,11 @@ export declare interface ILocalTrack extends ITrack {
1469
1499
  * Inherited from `LocalVideoTrack`, [CameraVideoTrack]{@link ICameraVideoTrack} is an interface for the video captured by a local camera and adds several camera-related functions.
1470
1500
  */
1471
1501
  export declare interface ILocalVideoTrack extends ILocalTrack {
1502
+ /**
1503
+ * @param event The event name.
1504
+ * @param listener See [track-updated]{@link event_track_updated}.
1505
+ */
1506
+ on(event: "track-updated", listener: typeof event_track_updated): void;
1472
1507
  /** @internal */
1473
1508
  on(event: "beauty-effect-overload", listener: typeof event_beauty_effect_overload): void;
1474
1509
  /**
@@ -1702,11 +1737,21 @@ export declare interface IMicrophoneAudioTrack extends ILocalAudioTrack {
1702
1737
  setEnabled(enabled: boolean): Promise<void>;
1703
1738
  }
1704
1739
 
1705
- export declare function interceptLocalAudioFrame(sender: RTCRtpSender): Promise<void>;
1740
+ declare interface InterceptAudioFrameOptions {
1741
+ enableTopn?: boolean;
1742
+ enableMetadata?: boolean;
1743
+ onMetadata?: (metadata: Uint8Array) => void;
1744
+ }
1745
+
1746
+ declare interface InterceptAudioFrameOptions_2 {
1747
+ metadata?: () => Uint8Array | undefined;
1748
+ }
1749
+
1750
+ export declare function interceptLocalAudioFrame(sender: RTCRtpSender, options?: InterceptAudioFrameOptions_2): Promise<void>;
1706
1751
 
1707
1752
  export declare function interceptLocalVideoFrame(sender: RTCRtpSender, localVideoTrack: LocalVideoTrack): Promise<void>;
1708
1753
 
1709
- export declare function interceptRemoteAudioFrame(receiver: RTCRtpReceiver): Promise<void>;
1754
+ export declare function interceptRemoteAudioFrame(receiver: RTCRtpReceiver, options?: InterceptAudioFrameOptions): Promise<void>;
1710
1755
 
1711
1756
  export declare function interceptRemoteVideoFrame(receiver: RTCRtpReceiver, options?: InterceptVideoFrameOptions): Promise<void>;
1712
1757
 
@@ -1738,7 +1783,7 @@ export declare interface IRemoteAudioTrack extends IRemoteTrack {
1738
1783
  *
1739
1784
  * Sets the audio playback device, for example, the speaker.
1740
1785
  *
1741
- * > This method supports Chrome and Edge on desktop devices only. Other browsers throw a `NOT_SUPPORTED` error when calling this method.
1786
+ * > > This method is only supported on desktop Chrome and Edge browsers. If you call it on other browsers, you need to set `RESTRICTION_SET_PLAYBACK_DEVICE` to `false` first, and calling it directly will throw a `NOT_SUPPORTED` error.
1742
1787
  * @param deviceId Device ID, which can be retrieved by calling [[getPlaybackDevices]].
1743
1788
  */
1744
1789
  setPlaybackDevice(deviceId: string): Promise<void>;
@@ -1825,6 +1870,11 @@ export declare interface IRemoteDataChannel extends IDataChannel {
1825
1870
  * `RemoteTrack` is the basic interface for remote tracks, providing public methods for [RemoteAudioTrack]{@link IRemoteAudioTrack} and [RemoteVideoTrack]{@link IRemoteVideoTrack}.
1826
1871
  */
1827
1872
  export declare interface IRemoteTrack extends ITrack {
1873
+ /**
1874
+ * @param event The event name.
1875
+ * @param listener See [track-updated]{@link event_track_updated}.
1876
+ */
1877
+ on(event: "track-updated", listener: typeof event_track_updated): void;
1828
1878
  /**
1829
1879
  * @param event The event name.
1830
1880
  * @param listener See [first-frame-decoded]{@link event_first_frame_decoded}.
@@ -1857,6 +1907,11 @@ export declare interface IRemoteTrack extends ITrack {
1857
1907
  * You can get create a remote video track by the [AgoraRTCRemoteUser.videoTrack]{@link IAgoraRTCRemoteUser.videoTrack} object after calling [subscribe]{@link IAgoraRTCClient.subscribe}.
1858
1908
  */
1859
1909
  export declare interface IRemoteVideoTrack extends IRemoteTrack {
1910
+ /**
1911
+ * @param event The event name.
1912
+ * @param listener See [track-updated]{@link event_track_updated}.
1913
+ */
1914
+ on(event: "track-updated", listener: typeof event_track_updated): void;
1860
1915
  /**
1861
1916
  * @param event The event name.
1862
1917
  * @param listener See [video-state-changed]{@link event_video_state_changed}.
@@ -1919,7 +1974,7 @@ export declare interface IRemoteVideoTrack extends IRemoteTrack {
1919
1974
  * After you call `remoteVideoTrack.play`, the SDK creates an [`<video>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video) tag for playing video tracks. When `remoteVideoTrack.isPlaying` is `true` but you cannot see any video, call this method to check whether the `<video>` tag is visible or not and learn the reason when the `<video>` tag is invisible.
1920
1975
  *
1921
1976
  * @returns The [[CheckVideoVisibleResult]] object. If this method returns `undefined`, it may be due to the following reasons:
1922
- * - `localRemoteTrack.isPlaying` is `false`.
1977
+ * - `remoteVideoTrack.isPlaying` is `false`.
1923
1978
  * - The `<video>` tag does not exist.
1924
1979
  * - The `<video>` tag is not created by calling the `play` method.
1925
1980
  */
@@ -2023,6 +2078,7 @@ export declare class LocalAudioTrack extends LocalTrack implements ILocalAudioTr
2023
2078
  readonly trackMediaType: "audio" | "video";
2024
2079
  _encoderConfig?: AudioEncoderConfiguration;
2025
2080
  _trackSource: AudioTrackSource | FakeTrackSource;
2081
+ metadata: AudioMetadata[];
2026
2082
  get _source(): AudioTrackSource;
2027
2083
  set _source(source: AudioTrackSource | FakeTrackSource);
2028
2084
  _enabled: boolean;
@@ -2134,7 +2190,7 @@ export declare abstract class LocalTrack extends Track implements ILocalTrack {
2134
2190
  protected processor?: IBaseProcessor;
2135
2191
  protected abstract _processorContext: IProcessorContext | undefined;
2136
2192
  protected get processorContext(): IProcessorContext | undefined;
2137
- abstract processorDestination: IBaseProcessor;
2193
+ abstract get processorDestination(): IBaseProcessor;
2138
2194
  constructor(track: MediaStreamTrack, trackId?: string);
2139
2195
  abstract getStats(): LocalVideoTrackStats | LocalAudioTrackStats;
2140
2196
  abstract setMuted(enabled: boolean): Promise<void>;
@@ -2170,21 +2226,24 @@ export declare class LocalVideoTrack extends LocalTrack implements ILocalVideoTr
2170
2226
  private _clearPreviousVideoVisibleStatus;
2171
2227
  _encoderConfig?: Partial<VideoEncoderConfiguration>;
2172
2228
  _scalabilityMode?: SVCConfiguration;
2173
- _optimizationMode?: "motion" | "detail" | "balanced";
2174
- _videoHeight?: number;
2175
- _videoWidth?: number;
2229
+ _optimizationMode?: OptimizationMode | "balanced";
2230
+ private _videoHeight?;
2231
+ private _videoWidth?;
2232
+ get videoHeight(): number | undefined;
2233
+ get videoWidth(): number | undefined;
2176
2234
  _forceBitrateLimit?: {
2177
2235
  max_bitrate: number;
2178
2236
  min_bitrate: number;
2179
2237
  };
2180
2238
  _enabled: boolean;
2181
2239
  get isPlaying(): boolean;
2182
- processorDestination: VideoProcessorDestination;
2240
+ protected _processorDestination: VideoProcessorDestination;
2241
+ get processorDestination(): VideoProcessorDestination;
2183
2242
  protected _processorContext: VideoProcessorContext;
2184
2243
  protected get processorContext(): VideoProcessorContext;
2185
2244
  protected set processorContext(ctx: VideoProcessorContext);
2186
2245
  get __className__(): string;
2187
- constructor(track: MediaStreamTrack, encoderConfig?: Partial<VideoEncoderConfiguration>, scalabilityConfig?: SVCConfiguration, optimizationMode?: "motion" | "detail" | "balanced", trackId?: string, hints?: TrackHint[]);
2246
+ constructor(track: MediaStreamTrack, encoderConfig?: Partial<VideoEncoderConfiguration>, scalabilityConfig?: SVCConfiguration, optimizationMode?: OptimizationMode | "balanced", trackId?: string, hints?: TrackHint[]);
2188
2247
  play(element: HTMLElement | HTMLVideoElement | string, config?: VideoPlayerConfig): void;
2189
2248
  stop(): void;
2190
2249
  setEnabled(enabled: boolean, skipChangeState?: boolean): Promise<void>;
@@ -2198,7 +2257,7 @@ export declare class LocalVideoTrack extends LocalTrack implements ILocalVideoTr
2198
2257
  max_bitrate: number;
2199
2258
  min_bitrate: number;
2200
2259
  }): Promise<void>;
2201
- setOptimizationMode(mode: "motion" | "detail" | "balanced"): Promise<void>;
2260
+ setOptimizationMode(mode: OptimizationMode | "balanced"): Promise<void>;
2202
2261
  setScalabiltyMode(mode: SVCConfiguration): void;
2203
2262
  updateMediaStreamTrackResolution(): void;
2204
2263
  protected _updatePlayerSource(): void;
@@ -2450,6 +2509,8 @@ export declare class MixingAudioTrack extends LocalAudioTrack {
2450
2509
  _updateRtpTransceiver(transceiver: RTCRtpTransceiver): void;
2451
2510
  }
2452
2511
 
2512
+ export declare type OptimizationMode = "motion" | "detail";
2513
+
2453
2514
  export declare interface PlayerConfig extends VideoPlayerConfig {
2454
2515
  trackId: string;
2455
2516
  element: HTMLElement;
@@ -2941,6 +3002,12 @@ export declare interface ScreenVideoTrackInitConfig {
2941
3002
  systemAudio?: "include" | "exclude";
2942
3003
  }
2943
3004
 
3005
+ export declare type SenderConfig = {
3006
+ bitrateMax: number;
3007
+ bitrateMin: number;
3008
+ scaleResolutionDownBy: number;
3009
+ };
3010
+
2944
3011
  export declare function silenceScriptProcessHandler(e: AudioProcessingEvent): AudioBuffer;
2945
3012
 
2946
3013
  export declare interface StatsRegistry {
@@ -3036,7 +3103,9 @@ export declare abstract class Track extends EventEmitter implements ITrack {
3036
3103
  _hints: TrackHint[];
3037
3104
  _isClosed: boolean;
3038
3105
  _originMediaStreamTrack: MediaStreamTrack;
3039
- _mediaStreamTrack: MediaStreamTrack;
3106
+ mediaStreamTrack: MediaStreamTrack;
3107
+ set _mediaStreamTrack(track: MediaStreamTrack);
3108
+ get _mediaStreamTrack(): MediaStreamTrack;
3040
3109
  _external: ExternalMethods;
3041
3110
  constructor(track: MediaStreamTrack, trackId?: string);
3042
3111
  toString(): string;
@@ -3053,7 +3122,8 @@ export declare abstract class Track extends EventEmitter implements ITrack {
3053
3122
  export declare enum TrackEvents {
3054
3123
  TRANSCEIVER_UPDATED = "transceiver-updated",
3055
3124
  SEI_TO_SEND = "sei-to-send",
3056
- SEI_RECEIVED = "sei-received"
3125
+ SEI_RECEIVED = "sei-received",
3126
+ TRACK_UPDATED = "track-updated"
3057
3127
  }
3058
3128
 
3059
3129
  export declare enum TrackHint {
@@ -3076,6 +3146,7 @@ export declare enum TrackInternalEvent {
3076
3146
  GET_LOW_VIDEO_TRACK = "@get_low_video_track",
3077
3147
  NEED_RESET_REMOTE_SDP = "@need_reset_remote_sdp",
3078
3148
  NEED_UPDATE_VIDEO_ENCODER = "@need_update_video_encoder",
3149
+ NEED_UPDATE_VIDEO_SEND_PARAMETERS = "@need_update_video_send_parameters",
3079
3150
  NEED_MUTE_TRACK = "@need_mute_track",
3080
3151
  NEED_UNMUTE_TRACK = "@need_unmute_track"
3081
3152
  }
@@ -3144,50 +3215,50 @@ export declare interface VideoEncoderConfiguration {
3144
3215
  *
3145
3216
  * The following table lists all the preset video profiles. The SDK uses `"480p_1"` by default.
3146
3217
  *
3147
- * | Video Profile | Resolution (Width×Height) | Frame Rate (fps) | Bitrate (Kbps) | Chrome | Firefox | Safari |
3148
- * | -------- | --------------- | ----------- | ------------ | ------ | ------- | ------ |
3149
- * | 120p | 160 × 120 | 15 | 65 | ✓ | | |
3150
- * | 120p_1 | 160 × 120 | 15 | 65 | ✓ | | |
3151
- * | 120p_3 | 120 × 120 | 15 | 50 | ✓ | | |
3152
- * | 180p | 320 × 180 | 15 | 140 | ✓ | | |
3153
- * | 180p_1 | 320 × 180 | 15 | 140 | ✓ | | |
3154
- * | 180p_3 | 180 × 180 | 15 | 100 | ✓ | | |
3155
- * | 180p_4 | 240 × 180 | 15 | 120 | ✓ | | |
3156
- * | 240p | 320 × 240 | 15 | 200 | ✓ | | |
3157
- * | 240p_1 | 320 × 240 | 15 | 200 | ✓ | | |
3158
- * | 240p_3 | 240 × 240 | 15 | 140 | ✓ | | |
3159
- * | 240p_4 | 424 × 240 | 15 | 220 | ✓ | | |
3160
- * | 360p | 640 × 360 | 15 | 400 | ✓ | | |
3161
- * | 360p_1 | 640 × 360 | 15 | 400 | ✓ | | |
3162
- * | 360p_3 | 360 × 360 | 15 | 260 | ✓ | | |
3163
- * | 360p_4 | 640 × 360 | 30 | 600 | ✓ | | |
3164
- * | 360p_6 | 360 × 360 | 30 | 400 | ✓ | | |
3165
- * | 360p_7 | 480 × 360 | 15 | 320 | ✓ | | |
3166
- * | 360p_8 | 480 × 360 | 30 | 490 | ✓ | | |
3167
- * | 360p_9 | 640 × 360 | 15 | 800 | ✓ | | |
3168
- * | 360p_10 | 640 × 360 | 24 | 800 | ✓ | | |
3169
- * | 360p_11 | 640 × 360 | 24 | 1000 | ✓ | | |
3170
- * | 480p | 640 × 480 | 15 | 500 | ✓ | ✓ | ✓ |
3171
- * | 480p_1 | 640 × 480 | 15 | 500 | ✓ | ✓ | ✓ |
3172
- * | 480p_2 | 640 × 480 | 30 | 1000 | ✓ | ✓ | ✓ |
3173
- * | 480p_3 | 480 × 480 | 15 | 400 | ✓ | ✓ | ✓ |
3174
- * | 480p_4 | 640 × 480 | 30 | 750 | ✓ | ✓ | ✓ |
3175
- * | 480p_6 | 480 × 480 | 30 | 600 | ✓ | ✓ | ✓ |
3176
- * | 480p_8 | 848 × 480 | 15 | 610 | ✓ | ✓ | ✓ |
3177
- * | 480p_9 | 848 × 480 | 30 | 930 | ✓ | ✓ | ✓ |
3178
- * | 480p_10 | 640 × 480 | 10 | 400 | ✓ | ✓ | ✓ |
3179
- * | 720p | 1280 × 720 | 15 | 1130 | ✓ | ✓ | ✓ |
3180
- * | 720p_1 | 1280 × 720 | 15 | 1130 | ✓ | ✓ | ✓ |
3181
- * | 720p_2 | 1280 × 720 | 30 | 2000 | ✓ | ✓ | ✓ |
3182
- * | 720p_3 | 1280 × 720 | 30 | 1710 | ✓ | ✓ | ✓ |
3183
- * | 720p_auto <sup>①</sup> | 1280 × 720 | 30 | 3000 | ✓ | ✓ | ✓ |
3184
- * | 720p_5 | 960 × 720 | 15 | 910 | ✓ | ✓ | ✓ |
3185
- * | 720p_6 | 960 × 720 | 30 | 1380 | ✓ | ✓ | ✓ |
3186
- * | 1080p | 1920 × 1080 | 15 | 2080 | ✓ | | ✓ |
3187
- * | 1080p_1 | 1920 × 1080 | 15 | 2080 | ✓ | | ✓ |
3188
- * | 1080p_2 | 1920 × 1080 | 30 | 3000 | ✓ | | ✓ |
3189
- * | 1080p_3 | 1920 × 1080 | 30 | 3150 | ✓ | | ✓ |
3190
- * | 1080p_5 | 1920 × 1080 | 60 | 4780 | ✓ | | ✓ |
3218
+ * | Video Profile | Resolution (Width×Height) | Frame Rate (fps) | Chrome | Firefox | Safari |
3219
+ * | -------- | --------------- | ----------- | ------ | ------- | ------ |
3220
+ * | 120p | 160 × 120 | 15 | ✓ | | |
3221
+ * | 120p_1 | 160 × 120 | 15 | ✓ | | |
3222
+ * | 120p_3 | 120 × 120 | 15 | ✓ | | |
3223
+ * | 180p | 320 × 180 | 15 | ✓ | | |
3224
+ * | 180p_1 | 320 × 180 | 15 | ✓ | | |
3225
+ * | 180p_3 | 180 × 180 | 15 | ✓ | | |
3226
+ * | 180p_4 | 240 × 180 | 15 | ✓ | | |
3227
+ * | 240p | 320 × 240 | 15 | ✓ | | |
3228
+ * | 240p_1 | 320 × 240 | 15 | ✓ | | |
3229
+ * | 240p_3 | 240 × 240 | 15 | ✓ | | |
3230
+ * | 240p_4 | 424 × 240 | 15 | ✓ | | |
3231
+ * | 360p | 640 × 360 | 15 | ✓ | | |
3232
+ * | 360p_1 | 640 × 360 | 15 | ✓ | | |
3233
+ * | 360p_3 | 360 × 360 | 15 | ✓ | | |
3234
+ * | 360p_4 | 640 × 360 | 30 | ✓ | | |
3235
+ * | 360p_6 | 360 × 360 | 30 | ✓ | | |
3236
+ * | 360p_7 | 480 × 360 | 15 | ✓ | | |
3237
+ * | 360p_8 | 480 × 360 | 30 | ✓ | | |
3238
+ * | 360p_9 | 640 × 360 | 15 | ✓ | | |
3239
+ * | 360p_10 | 640 × 360 | 24 | ✓ | | |
3240
+ * | 360p_11 | 640 × 360 | 24 | ✓ | | |
3241
+ * | 480p | 640 × 480 | 15 | ✓ | ✓ | ✓ |
3242
+ * | 480p_1 | 640 × 480 | 15 | ✓ | ✓ | ✓ |
3243
+ * | 480p_2 | 640 × 480 | 30 | ✓ | ✓ | ✓ |
3244
+ * | 480p_3 | 480 × 480 | 15 | ✓ | ✓ | ✓ |
3245
+ * | 480p_4 | 640 × 480 | 30 | ✓ | ✓ | ✓ |
3246
+ * | 480p_6 | 480 × 480 | 30 | ✓ | ✓ | ✓ |
3247
+ * | 480p_8 | 848 × 480 | 15 | ✓ | ✓ | ✓ |
3248
+ * | 480p_9 | 848 × 480 | 30 | ✓ | ✓ | ✓ |
3249
+ * | 480p_10 | 640 × 480 | 10 | ✓ | ✓ | ✓ |
3250
+ * | 720p | 1280 × 720 | 15 | ✓ | ✓ | ✓ |
3251
+ * | 720p_1 | 1280 × 720 | 15 | ✓ | ✓ | ✓ |
3252
+ * | 720p_2 | 1280 × 720 | 30 | ✓ | ✓ | ✓ |
3253
+ * | 720p_3 | 1280 × 720 | 30 | ✓ | ✓ | ✓ |
3254
+ * | 720p_auto <sup>①</sup> | 1280 × 720 | 30 | ✓ | ✓ | ✓ |
3255
+ * | 720p_5 | 960 × 720 | 15 | ✓ | ✓ | ✓ |
3256
+ * | 720p_6 | 960 × 720 | 30 | ✓ | ✓ | ✓ |
3257
+ * | 1080p | 1920 × 1080 | 15 | ✓ | | ✓ |
3258
+ * | 1080p_1 | 1920 × 1080 | 15 | ✓ | | ✓ |
3259
+ * | 1080p_2 | 1920 × 1080 | 30 | ✓ | | ✓ |
3260
+ * | 1080p_3 | 1920 × 1080 | 30 | ✓ | | ✓ |
3261
+ * | 1080p_5 | 1920 × 1080 | 60 | ✓ | | ✓ |
3191
3262
  *
3192
3263
  * > <sup>①</sup> `"720p_auto"` is only recommended to be set on Safari to ensure dynamic adjustment of the encoding resolution. For details, see the release notes.
3193
3264
  */
@@ -3209,6 +3280,8 @@ declare class VideoPlayer {
3209
3280
  protected videoTrack?: MediaStreamTrack;
3210
3281
  protected videoElement: HTMLVideoElement;
3211
3282
  protected cacheVideoElement?: HTMLVideoElement;
3283
+ private renderStats?;
3284
+ get rendFrameRate(): number;
3212
3285
  get videoElementStatus(): MediaElementStatus;
3213
3286
  set videoElementStatus(status: MediaElementStatus);
3214
3287
  get videoState(): VideoState;