@vindral/web-sdk 4.1.6 → 4.1.7-1-g0bc6e715
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/{BoVzlg5M.js → CUnMhSqe.js} +1 -1
- package/{D1E3hbbb.js → NssX7vGm.js} +3038 -2796
- package/{xMUHexhV.js → UjLu82Xl.js} +1 -1
- package/core.d.ts +71 -2
- package/core.js +1 -1
- package/legacy.d.ts +71 -2
- package/legacy.es.js +4056 -3814
- package/legacy.umd.js +9 -9
- package/package.json +1 -1
- package/player.d.ts +73 -4
- package/player.js +488 -479
- package/react.d.ts +73 -4
package/react.d.ts
CHANGED
|
@@ -790,12 +790,60 @@ interface QualityOfServiceModuleStatistics {
|
|
|
790
790
|
timeSpentRatio: {
|
|
791
791
|
[qualityIndex: string]: number;
|
|
792
792
|
};
|
|
793
|
+
/**
|
|
794
|
+
* Ratio of time spent buffering to total active time (0-1).
|
|
795
|
+
* Provides a normalized buffering quality metric regardless of session length.
|
|
796
|
+
* A value of 0.05 means 5% of the active session was spent buffering.
|
|
797
|
+
*/
|
|
798
|
+
bufferingRatio: number;
|
|
799
|
+
/**
|
|
800
|
+
* Number of buffering events per minute of active playback.
|
|
801
|
+
* Normalizes buffering event count for comparison across sessions of different durations.
|
|
802
|
+
*/
|
|
803
|
+
bufferingEventsPerMinute: number;
|
|
804
|
+
/**
|
|
805
|
+
* Weighted average rendition index based on time spent at each level.
|
|
806
|
+
* Lower values indicate higher quality (index 0 is the highest quality).
|
|
807
|
+
* Example: 0.3 means mostly on the best quality with some time on lower qualities.
|
|
808
|
+
*/
|
|
809
|
+
averageRenditionIndex: number;
|
|
810
|
+
/**
|
|
811
|
+
* Buffering ratio for the last minute of playback (0-1).
|
|
812
|
+
* Useful for detecting recent degradation vs overall session quality.
|
|
813
|
+
*/
|
|
814
|
+
bufferingRatioPerMinute: number;
|
|
815
|
+
/**
|
|
816
|
+
* Number of rendition level changes (upgrades + downgrades) per minute.
|
|
817
|
+
* Measures ABR stability - lower values indicate a more stable experience.
|
|
818
|
+
*/
|
|
819
|
+
renditionChangesPerMinute: number;
|
|
820
|
+
/**
|
|
821
|
+
* Average time in milliseconds spent buffering per buffering event.
|
|
822
|
+
* Helps distinguish many short buffering events from fewer long ones.
|
|
823
|
+
*/
|
|
824
|
+
timePerBufferingEvent: number;
|
|
793
825
|
}
|
|
794
826
|
interface SyncModuleStatistics {
|
|
795
827
|
drift: number | undefined;
|
|
796
|
-
|
|
797
|
-
|
|
828
|
+
seekAdjustmentCount: number;
|
|
829
|
+
timeshiftAdjustmentCount: number;
|
|
798
830
|
seekTime: number;
|
|
831
|
+
/**
|
|
832
|
+
* Total time spent seeking in milliseconds for the entire session.
|
|
833
|
+
* High values indicate frequent or slow seeks, which may impact user experience.
|
|
834
|
+
*/
|
|
835
|
+
totalSeekTime: number;
|
|
836
|
+
seekToleranceMultiplier: number;
|
|
837
|
+
currentSeekToleranceMs: number;
|
|
838
|
+
currentAheadToleranceMs: number;
|
|
839
|
+
isPlaybackRateAdjustmentEnabled: boolean;
|
|
840
|
+
playbackRate: number;
|
|
841
|
+
playbackRateAdjustmentCount: number;
|
|
842
|
+
/**
|
|
843
|
+
* Average absolute drift in milliseconds over a rolling window.
|
|
844
|
+
* Measures how far off sync the playback typically is, regardless of direction.
|
|
845
|
+
*/
|
|
846
|
+
averageDrift: number;
|
|
799
847
|
}
|
|
800
848
|
interface VideoPlayerStatistics {
|
|
801
849
|
renderedFrameCount: number;
|
|
@@ -881,6 +929,22 @@ type Statistics = ModuleStatistics & ReturnType<UserAgentInformation["getUserAge
|
|
|
881
929
|
* Average bitrate for the entire session in bits/second.
|
|
882
930
|
*/
|
|
883
931
|
averageBitRate?: number;
|
|
932
|
+
/**
|
|
933
|
+
* Number of reconnections per hour of uptime.
|
|
934
|
+
* Measures connection stability over time. Lower is better.
|
|
935
|
+
* Excludes the initial connection, so a stable session will have a value of 0.
|
|
936
|
+
*/
|
|
937
|
+
reconnectsPerHour: number;
|
|
938
|
+
/**
|
|
939
|
+
* Number of seek adjustments (seeks to catch up) per minute of active playback.
|
|
940
|
+
* High values indicate sync issues or network instability.
|
|
941
|
+
*/
|
|
942
|
+
seekAdjustmentsPerMinute: number;
|
|
943
|
+
/**
|
|
944
|
+
* Number of timeshift adjustments per minute of active playback.
|
|
945
|
+
* Relevant for timeshift-enabled streams.
|
|
946
|
+
*/
|
|
947
|
+
timeshiftAdjustmentsPerMinute: number;
|
|
884
948
|
};
|
|
885
949
|
declare class Vindral extends Emitter<PublicVindralEvents> {
|
|
886
950
|
#private;
|
|
@@ -1320,6 +1384,11 @@ interface ConnectionStatistics {
|
|
|
1320
1384
|
* Total number of connection attempts since instantiation.
|
|
1321
1385
|
*/
|
|
1322
1386
|
connectionAttemptCount: number;
|
|
1387
|
+
/**
|
|
1388
|
+
* Ratio of successful connections to total connection attempts (0-1).
|
|
1389
|
+
* A value of 1.0 means every connection attempt succeeded.
|
|
1390
|
+
*/
|
|
1391
|
+
connectionSuccessRatio: number;
|
|
1323
1392
|
connectionProtocol: "vindral_ws" | "moq" | undefined;
|
|
1324
1393
|
}
|
|
1325
1394
|
interface LanguageSwitchContext {
|
|
@@ -1660,7 +1729,7 @@ type ControllerAttributes = (typeof Controller.observedAttributes)[number];
|
|
|
1660
1729
|
declare class Controller extends HTMLElement {
|
|
1661
1730
|
#private;
|
|
1662
1731
|
static observedAttributes: readonly [
|
|
1663
|
-
...("language" | "channels" | "buffering" | "paused" | "volume" | "muted" | "duration" | "user-interacting" | "is-casting" | "cast-available" | "cast-receiver-name" | "ui-locked" | "hide-ui-on-pause" | "is-fullscreen" | "is-fullscreen-fallback" | "rendition-levels" | "rendition-level" | "max-video-bit-rate" | "max-initial-bit-rate" | "channel-id" | "channel-group-id" | "pip-available" | "is-pip" | "airplay-available" | "is-airplaying" | "media" | "languages" | "text-tracks" | "text-track" | "needs-user-input-video" | "needs-user-input-audio" | "authentication-token" | "volume-level" | "cast" | "airplay" | "pip" | "fullscreen" | "vu-meter" | "
|
|
1732
|
+
...("language" | "channels" | "buffering" | "paused" | "volume" | "muted" | "duration" | "user-interacting" | "is-casting" | "cast-available" | "cast-receiver-name" | "ui-locked" | "hide-ui-on-pause" | "is-fullscreen" | "is-fullscreen-fallback" | "rendition-levels" | "rendition-level" | "max-video-bit-rate" | "max-initial-bit-rate" | "channel-id" | "channel-group-id" | "pip-available" | "is-pip" | "airplay-available" | "is-airplaying" | "media" | "languages" | "text-tracks" | "text-track" | "needs-user-input-video" | "needs-user-input-audio" | "authentication-token" | "volume-level" | "cast" | "airplay" | "pip" | "fullscreen" | "vu-meter" | "timeshift" | "timeshift-position" | "poster-src")[],
|
|
1664
1733
|
"url",
|
|
1665
1734
|
"edge-url",
|
|
1666
1735
|
"target-buffer-time",
|
|
@@ -1790,7 +1859,7 @@ declare class PlayButton extends VindralButton {
|
|
|
1790
1859
|
type PlayerAttributes = (typeof Player.observedAttributes)[number];
|
|
1791
1860
|
declare class Player extends HTMLElement {
|
|
1792
1861
|
#private;
|
|
1793
|
-
static observedAttributes: readonly ("title" | "advanced" | "poster" | "language" | "channels" | "buffering" | "paused" | "volume" | "muted" | "duration" | "user-interacting" | "is-casting" | "cast-available" | "cast-receiver-name" | "ui-locked" | "hide-ui-on-pause" | "is-fullscreen" | "is-fullscreen-fallback" | "rendition-levels" | "rendition-level" | "max-video-bit-rate" | "max-initial-bit-rate" | "channel-id" | "channel-group-id" | "pip-available" | "is-pip" | "airplay-available" | "is-airplaying" | "media" | "languages" | "text-tracks" | "text-track" | "needs-user-input-video" | "needs-user-input-audio" | "authentication-token" | "volume-level" | "cast" | "airplay" | "pip" | "fullscreen" | "vu-meter" | "
|
|
1862
|
+
static observedAttributes: readonly ("title" | "advanced" | "poster" | "language" | "channels" | "buffering" | "paused" | "volume" | "muted" | "duration" | "user-interacting" | "is-casting" | "cast-available" | "cast-receiver-name" | "ui-locked" | "hide-ui-on-pause" | "is-fullscreen" | "is-fullscreen-fallback" | "rendition-levels" | "rendition-level" | "max-video-bit-rate" | "max-initial-bit-rate" | "channel-id" | "channel-group-id" | "pip-available" | "is-pip" | "airplay-available" | "is-airplaying" | "media" | "languages" | "text-tracks" | "text-track" | "needs-user-input-video" | "needs-user-input-audio" | "authentication-token" | "volume-level" | "cast" | "airplay" | "pip" | "fullscreen" | "vu-meter" | "timeshift" | "timeshift-position" | "poster-src" | "url" | "offline" | "edge-url" | "target-buffer-time" | "cast-receiver-id" | "cast-background" | "log-level" | "max-size" | "min-buffer-time" | "max-buffer-time" | "max-audio-bit-rate" | "burst-enabled" | "mse-enabled" | "mse-opus-enabled" | "ios-background-play-enabled" | "ios-wake-lock-enabled" | "ios-media-element-enabled" | "abr-enabled" | "size-based-resolution-cap-enabled" | "telemetry-enabled" | "video-codecs" | "drm-headers" | "drm-queryparams" | "drm-widevine-video-robustness" | "drm-widevine-audio-robustness" | "drm-playready-video-robustness" | "drm-playready-audio-robustness" | "webtransport-enabled" | "reconnect-retries" | "auto-instance-enabled" | "refresh-poster-enabled" | "stream-poll-enabled")[];
|
|
1794
1863
|
constructor();
|
|
1795
1864
|
connectedCallback(): void;
|
|
1796
1865
|
disconnectedCallback(): void;
|